Skip To Content

Utiliser des champs

Si vous êtes le propriétaire d'une couche d'entités hébergée ou un administrateur de votre organisation, vous pouvez ajouter, supprimer et calculer des champs dans les couches d'entités hébergées. Certaines restrictions s'appliquent. Par exemple, vous ne pouvez pas supprimer ou calculer le champ OBJECTID. Pour obtenir la liste complète des restrictions, consultez la section Restrictions.

Conditions préalables :

Pour ajouter, supprimer ou calculer des champs sur une couche d'entités hébergée, vous devez tout d'abord afficher la table attributaire de la couche. Reportez-vous à la rubrique Afficher des tables pour plus d'informations sur les tables.

Ajouter un champ

  1. Suivez la procédure pour afficher une table.
  2. Cliquez sur Options de la table.
  3. Cliquez sur Ajouter un champ.
    • Nom : les noms des champs ne doivent pas contenir de caractères spéciaux, tels que les espaces, traits d'union, parenthèses, crochets ou caractères comme $, % et #. Evitez d'utiliser des noms de champ contenant des mots-clés qui sont généralement considérés comme réservés aux bases de données, tels que CHARACTER ou DATE. Si vous tentez d'ajouter un nom de champ contenant des caractères spéciaux ou un mot-clé réservé pour une base de données, un message d'erreur apparaît.
    • Alias : autre nom d'un champ, qui est plus descriptif et plus facile à retenir que le nom. L'alias peut contenir des caractères spéciaux et des mots-clés réservés pour les bases de données.
    • Type : un des types suivants :
    • Longueur : longueur maximale, en caractères, qu'un champ de chaîne peut stocker. La longueur est requise pour le type de champ Chaîne. La valeur par défaut est de 256 caractères.

Supprimer un champ

  1. Suivez la procédure pour afficher une table.
  2. Cliquez sur la colonne contenant le champ à supprimer.
  3. Cliquez sur Supprimer. Confirmez la suppression du champ.

Pour certains champs, tels que OBJECTID, CREATIONDATE, CREATOR, EDITDATE et EDITOR, ainsi que les champs utilisés dans votre carte pour les styles et les filtres, l'option Supprimer n'est pas disponible. Toutefois, d'autres cartes peuvent utiliser des champs pour la symbologie et les filtres qui sont différents des champs que votre carte utilise, et l'option Supprimer est disponible pour ces champs. Soyez prudent lorsque vous supprimez des champs susceptibles d'être utilisés pour la symbologie et les filtres dans d'autres cartes.

Calculer un champ

  1. Suivez la procédure pour afficher une table.
  2. Cliquez sur la colonne contenant le champ dont vous voulez calculer les valeurs.
  3. Cliquez sur Calculer.

    La boîte de dialogue Générateur d'expressions s'ouvre.

Opérations de base

Dans la boîte de dialogue Générateur d'expressions, vous pouvez créer des expressions simples à l'aide d'opérateurs tels que plus, moins, multiplier et diviser. Exemples et astuces :

  • Pour multiplier toutes les valeur d'un champ numérique nomméSAMPLE par 100,0, tapez SAMPLE * 100.0 pour l'expression.
  • Pour mener à bien des équations plus complexes, vous pouvez utiliser les parenthèses afin de préciser l'ordre des calculs, par exemple SAMPLE * (BASELINE - 40).
  • Les opérateurs mathématiques ne fonctionnent pas avec les champs de type chaîne. Vous devez utiliser les fonctions de chaîne décrites dans la section Fonctions de chaîne.
  • Si vous calculez un champ de type double sur un champ de type entier, la fonction CAST peut être automatiquement ajoutée à votre expression. Par exemple, si vous calculez un champ double nommé POP sur un champ entier nommé SAMPLE, l'expression apparaît sous la forme CAST(SAMPLE AS FLOAT). Ne supprimez pas la fonction CAST. Voir la section Fonctions numériques ci-dessous pour en savoir plus sur la fonction CAST.
  • Pour inclure une apostrophe dans la chaîne, utilisez deux guillemets simples pour encadrer l'apostrophe. Par exemple, 'Nightingale''s'. N'utilisez pas de guillemets doubles.

Une fois votre expression créée, cliquez sur le bouton Calculer. En cas d'erreur, un message d'erreur apparaît au bas de la boîte de dialogue.

Voici quelques éléments supplémentaires à prendre en compte :

  • Si un filtre est appliqué sur votre couche, seules les valeurs des enregistrements qui correspondent aux critères de filtrage seront calculées.
  • Le générateur d'expressions fonctionne uniquement avec les noms de champ, et non avec les alias de champ. La liste Champs présente tous les noms de champ disponibles pour les calculs. Vous pouvez filtrer cette liste en fonction des types de champ Chaîne, Numérique et Date.
    • Si vous placez le pointeur de la souris sur un nom de champ dans la liste Champs, l'alias de champ et le type de champ apparaissent.
    • Si vous cliquez sur un nom de champ dans la liste Champs, le champ est ajouté à l'expression.

Utiliser les fonctions

Outre les expressions simples à l'aide d'opérateurs, vous pouvez également utiliser les fonctions. Les fonctions peuvent s'utiliser avec les noms de champ, les littéraux et d'autres fonctions. Supposons par exemple que vous deviez calculer un champ double devant être TOTALPOP divisé par POP18. Si une entité possède un POP18 égal à zéro, le calcul génère une erreur de division par zéro. Pour éviter cette situation, utilisez la fonction NULLIF décrite ci-dessous. L'expression serait TOTALPOP / NULLIF(POP18, 0).

Les fonctions acceptent les arguments. Dans les tables ci-dessous, tout argument peut être comme suit :

  • Un nom de champ, tant que le type de champ correspond au type d'argument (chaîne, nombre ou date).
  • Un littéral, tel que 'Sailboat' 'Voilier' (une chaîne entourée de guillemets simples), le nombre 5 ou une date au format MM/JJ/AAAA hh:mm:ss, avec guillemets simples d'encadrement.
  • Si votre organisation autorise les requêtes SQL non standard, les caractères non anglais dans un littéral de chaîne doivent être accompagnés du caractère d'échappement N (par exemple : N'针叶林).
  • Une fonction qui renvoie une valeur du type approprié (chaîne, nombre ou date). Par exemple, FLOOR(POWER(SAMP_ERR, 0.5)) renvoie le plus grand entier qui est inférieur ou égal à la racine carrée de SAMP_ERR.

A des fins d'illustration, les exemples donnés dans la colonne de description des tables suivantes utilisent principalement des arguments littéraux. Vous pouvez remplacer un nom de champ ou une autre fonction pour ces arguments.

Fonctions de chaîne

FonctionDescription

CHAR_LENGTH(chaîne)

Renvoie le nombre de caractères dans la chaîne. Le résultat est un entier.

Exemple

  • CHAR_LENGTH('Redlands') : le résultat est 8.

CONCAT(chaîne1, chaîne2)

Concatène deux chaînes.

Deux chaînes uniquement peuvent être fournies. Pour concaténer plus de deux chaînes, imbriquez plusieurs CONCAT consécutifs, comme illustré dans l'exemple ci-dessous.

Exemple

  • CONCAT('A', 'B') : le résultat est 'AB'.
  • CONCAT('A', CONCAT(':', 'B')) : le résultat est 'A:B'.

Les valeurs Null sont converties en chaîne vide.

POSITION(sous-chaîne, chaîne )*

Remarque :

*Si le serveur d'hébergement de votre portail utilise ArcGIS Data Store ou une base de données gérée dans PostgreSQL, vous devez utiliser POSITION(sous-chaîne dans chaîne) à la place.

Renvoie la position de la première occurrence de la sous-chaîne dans la chaîne. Si la sous-chaîne est introuvable, le résultat est 0.

Exemples

  • POSITION('bateau', 'Voilier') : le résultat est 5.
  • POSITION('moteur', 'Voilier') : le résultat est 0.

SUBSTRING(chaîne, début, longueur)

Renvoie une partie de la chaîne. Le début est un index entier qui indique l'endroit où les caractères renvoyés commencent et la longueur désigne le nombre de caractères à renvoyer.

Exemple

  • SUBSTRING('Voilier', 5, 4) : le résultat est 'boat'.
  • SUBSTRING('Voilier', 1, 4) : le résultat est 'Sail'.
  • SUBSTRING('Voilier', 5, 100) : le résultat est 'boat'.

TRIM(BOTH | LEADING | TRAILING ' ' FROMchaîne)

Renvoie une chaîne dans laquelle tous les espaces de début ou de fin sont supprimés de la chaîne.

Exemple

  • TRIM(BOTH ' ' FROM ' San Bernardino ') : le résultat est 'San Bernardino'.

Notez que le second argument correspond à deux guillemets simples séparés par un espace.

UPPER(chaîne)

Renvoie une chaîne où tous les caractères dans la chaîne sont convertis en majuscules.

Exemple

  • UPPER('Voilier') : le résultat est 'SAILBOAT'.

LOWER(chaîne)

Renvoie une chaîne où tous les caractères dans la chaîne sont convertis en minuscules.

Exemple

  • LOWER('Voilier') : le résultat est 'sailboat'.

Fonctions numériques

Outre les fonctions numériques décrites ci-dessous, vous pouvez calculer des statistiques sur des colonnes de données. Ces statistiques incluent le nombre d'enregistrements, la valeur minimum et maximum, la somme de toutes les valeurs, la valeur moyenne et l'écart type de toutes les valeurs.

  1. Cliquez sur la colonne contenant le champ des valeurs dont vous voulez calculer les statistiques.
  2. Cliquez sur Statistiques. Une boîte de dialogue affiche les statistiques calculées.

FonctionDescription

ABS(nombre)

Renvoie la valeur absolue (positive) du nombre.

CEILING(nombre)

Renvoie le plus petit nombre entier supérieur ou égal au nombre.

Exemple

  • CEILING(12.93) : le résultat est 13.

COS(nombre)

Renvoie le cosinus trigonométrique du nombre, qui est censé être un angle en radians.

CAST(nombreAS FLOAT | INT)

Convertit un nombre en un type différent. FLOAT convertit le nombre en une valeur double et INT le convertit en un nombre entier.

FLOOR(nombre)

Renvoie le plus grand nombre entier qui est inférieur ou égal au nombre.

Exemple

  • FLOOR(12.93) : le résultat est 12.

LOG(nombre)*

Remarque :

*Si le serveur d'hébergement de votre portail utilise ArcGIS Data Store ou une base de données gérée dans PostgreSQL, vous devez utiliser LN(nombre, décimale) à la place.

Le logarithme naturel du nombre.

LOG10(nombre)*

Remarque :

*Si le serveur d'hébergement de votre portail utilise un stockage de données relationnelles via ArcGIS Data Store ou une base de données gérée dans PostgreSQL, vous devez utiliser LOG(nombre, décimale) à la place.

Le logarithme en base 10 du nombre.

MOD(nombre, n)

Renvoie le reste après la division de n sur le nombre. n et le nombre doivent tous les deux être de type entier.

Exemple

  • MOD(10, 4) : le résultat est 2.
  • MOD(CAST(DBLFIELD AS INT), 4) : DBLFIELD étant un champ de type double, la fonction CAST est nécessaire pour convertir les valeurs doubles en valeurs entières.

NULLIF(nombre, valeur)

Renvoie null si nombre est égal à valeur. NULLIF est fréquemment utilisé pour éviter les erreurs de division par zéro en définissant la valeur sur 0.

Dès qu'un calcul rencontre une valeur de champ null dans un de ses arguments, le résultat du calcul est null.

Supposons par exemple que vous deviez calculer un champ double devant être TOTALPOP divisé par POP18. Si une entité possède un POP18 égal à zéro, le calcul génère une erreur de division par zéro. Vous pouvez créer un filtre pour masquer les enregistrements où POP18 est égal à zéro, puis réaliser votre calcul. Il est plus rapide d'utiliser NULLIF.

  • TOTALPOP / NULLIF(POP18, 0) : renvoie null si POP18 est égal à zéro. Sinon, la valeur de TOTALPOP / POP18 est renvoyée.

POWER(nombre , y)

Renvoie la valeur du nombre élevée à la puissance spécifiée y.

ROUND(nombre , longueur)

Arrondit le nombre à la longueur spécifiée.

Si la longueur est un nombre positif, le nombre est arrondi à la position décimale spécifiée par la longueur. Lorsque la longueur est un nombre négatif, il est arrondi à gauche de la séparation décimale.

Exemples

  • ROUND(10.9934,2) : renvoie 10.99.
  • ROUND(10.9964,2) : renvoie 11.00.
  • ROUND(111.0,-2) : renvoie 100.00.

SIN(nombre)

Renvoie le sinus trigonométrique du nombre, qui est censé être un angle en radians.

TAN(nombre)

Renvoie la tangente du nombre, qui doit être un angle en radians.

TRUNCATE(nombre, de décimales)*

Remarque :

*Si le serveur d'hébergement de votre portail utilise un stockage de données relationnelles via ArcGIS Data Store ou une base de données gérée dans PostgreSQL, vous devez utiliser TRUNC(nombre, décimale) à la place.

Tronque le nombre à la décimale spécifiée.

Une décimale positive tronque à la position décimale spécifiée. Lorsque la décimale est un nombre négatif, il est tronqué à gauche de la séparation décimale.

Exemples

  • TRUNCATE(111.996,2) : renvoie 111.99 .
  • TRUNCATE(111.996,-2) : renvoie 100.00.

Fonctions de date

Certaines fonctions sont disponibles pour les champs de date. Pour une liste de fonctions de date et en savoir plus sur la manière de travailler avec les champs de date des tables attributaires, voir Utiliser les champs de date.

Utiliser les champs de date

Plusieurs calculs peuvent être effectués sur les champs de date. Par exemple, vous pouvez ajouter ou soustraire du temps d'un champ de date ou calculer la différence entre deux champs de date.

Fonctions de date

Les fonctions de date suivantes sont disponibles :

FonctionDescription

CURRENT_DATE()*

Remarque :

*Si le serveur d'hébergement de votre portail utilise ArcGIS Data Store ou une base de données gérée dans PostgreSQL, vous devez utiliser CURRENT_DATE à la place.

Renvoie la date actuelle en heure UTC.

CURRENT_TIME()*

Remarque :

*Si le serveur d'hébergement de votre portail utilise ArcGIS Data Store ou une base de données gérée dans PostgreSQL, vous devez utiliser CURRENT_TIME à la place.

Renvoie la date et l'heure UTC actuelles (heures, minutes, secondes).

CURRENT_TIMESTAMP()*

Remarque :

*Si le serveur d'hébergement de votre portail utilise ArcGIS Data Store ou une base de données gérée dans PostgreSQL, vous devez utiliser CURRENT_TIMESTAMP à la place.

Renvoie la date et l'heure UTC actuelles (heures, minutes, secondes, millisecondes).

EXTRACT(unit FROM date)*

Remarque :

*Si le serveur d'hébergement de votre portail utilise ArcGIS Data Store ou une base de données gérée dans PostgreSQL, vous devez utiliser CURRENT_DATE à la place.

Renvoie une seule partie d'une date/heure, par exemple l'année, le mois, le jour, l'heure, la minute, etc.

Par exemple

  • EXTRACT(MONTH FROM 12/21/2016) : renvoie 12.
  • EXTRACT(DAY FROM 12/21/2016 12:00) : renvoie 21.
  • EXTRACT(HOUR FROM 12/21/2016 15:00) : renvoie 15.

Calculer les champs de date

Vous pouvez utiliser toute combinaison de champs de date et de nombre et des littéraux lors du calcul des champs de date. Lorsque vous utilisez les champs de date, vous devez utiliser les formats de date compatibles avec SQL.

Ajouter du temps ou soustrayez-en d'une date

Vous pouvez ajouter du temps ou en soustraire d'un champ de date ou d'un littéral de date compatible SQL pour obtenir un champ de date mis à jour. Par exemple, vous pouvez calculer une date d'une inspection ou d'un examen à venir en ajoutant du temps à une date.

Les calculs suivants peuvent être utilisés pour ajouter ou soustraire du temps à partir d'un champ de date. Le premier utilise les champs de date et le second utilise les valeurs littérales de date. Les champs de nombre et les littéraux de nombre peuvent être également utilisés. Toute association de champs et de littéraux est prise en charge, comme indiqué dans le troisième et le quatrième calculs.

<DateField> + / - <NumberField> = updated date
DATE'<SQL-supported Date Literal>'  + / - <Number of Days> = updated date
<DateField> +/- <Number of Days> = updated date
DATE'<SQL-supported Date Literal >'  + / - <NumberField> = updated date

Le champ de date calculé est la date d'origine plus ou moins le nombre de jours que vous souhaitez ajouter ou soustraire. Le nombre de jours peut être un entier et peut également inclure une fraction, par exemple 1,5 pourrait représenter une journée et demie ou 36 heures.

Dans l'exemple suivant, une pièce mécanique est installée le 14/06/2016 à 10 h 00. Vous pouvez utiliser un des calculs suivants pour produire une date d'inspection un mois (30 jours) après cette date d'installation. Le premier calcul utilise un champ de date avec une valeur de 14/06/2016 et un champ de nombre avec une valeur de 30, tandis que le second calcul utilise un littéral de date et un littéral de nombre.

<MyDateField> + <MyNumberField> = 7/14/2016 10:00 AM
DATE'6/14/2016' + 30 = 7/14/2016 10:00 AM

Calculer la différence entre deux dates

Vous pouvez calculer l'intervalle entre deux dates. Par exemple, si vous avez les dates d'installation pour les compteurs électriques et si vous avez également les dates d'inspection, vous pouvez calculer la différence entre les deux dates afin de vérifier que l'intervalle entre l'installation et l'inspection correspond parfaitement aux instructions. Le résultat du calcul est un champ de nombre plutôt qu'un champ de date.

Toute combinaison de champs de date et de littéraux de date peut être utilisée pour calculer l'intervalle entre deux dates. Le premier calcul ci-dessous utilise un champ de date, tandis que le second utilise un littéral de date. Les troisième et quatrième calculs utilisent à la fois un champ de date et un littéral de date.

<DateField1> - <DateField2> = number of days in between
DATE'<SQL-supported Date Literal>' - DATE'< SQL-supported Date Literal>' = number of days in between
<DateField1> - DATE'<SQL-supported Date Literal>' = number of days in between
DATE'<SQL-supported Date Literal>' - <DateField2>  = number of days in between

Le résultat est un champ de nombre calculé en soustrayant un champ/littéral de date à partir d'un autre champ/littéral de date. Le résultat numérique (en jours) peut être un nombre entier et peut également inclure une fraction, par exemple 1,5 pourrait représenter une journée et demie ou 36 heures.

Dans le cadre de l'inspection des compteurs électriques susmentionnée, par exemple, un des calculs suivants peut être utilisé pour calculer l'intervalle entre une date d'installation au 01/06/2015 et une date d'inspection au 01/10/2015. Le premier calcul utilise les champs de date, le second utilise les littéraux de date et les troisième et quatrième calculs utilisent un champ de date et un littéral de date.

<InspectionDateField> - <InstallationDateField> = 122 (days)
DATE'10/1/2015' - DATE'6/1/2015' = 122 (days)
<InspectionDateField> - DATE'6/1/2015' = 122 (days)
DATE'10/1/2015' - <InstallationDateField> = 122 (days)

Prises en compte des champs de date

Les informations suivantes sont importantes à prendre en compte lors de l'utilisation des champs de date.

Modifier le format d'affichage du champ de date

Vous pouvez modifier le mode d'affichage des dates dans la table. Les tables s'affichent avec la mise en forme configurée dans les fenêtres contextuelles. Vous pouvez modifier le format d'affichage d'un champ de date en sélectionnant son alias dans la fenêtre Configurer les attributs de Propriétés de la fenêtre contextuelle.

Saisir des dates au format MM/JJ/AAAA hh:mm:ss

Quelle que soit la manière dont les dates s'affichent dans la table, vous pouvez uniquement saisir les dates au format MM/JJ/AAAA hh:mm:ss, entourées de guillemets simples. Par exemple, pour définir un champ de date à 17h00 le 27 mai 2014, vous saisiriez '05/27/2014 5:00:00PM', '05/27/2014 5:00PM' ou '05/27/2014 17:00:00' (format 24 heures). Le stockage de l'heure seule n'est pas pris en charge. L'heure doit toujours être un composant d'une date.

Les dates sont saisies et stockées en heure UTC

Les champs de date dans les tables sont censés contenir une date et une heure UTC. UTC est l'abréviation de Universal Time Coordinated (Temps universel coordonné) et est presque l'équivalent de l'heure actuelle du méridien principal de la Terre (zéro degré de longitude) qui se situe à proximité du méridien de Greenwich, en Angleterre. UTC est une version plus précise de GMT (Greenwich Mean Time, temps moyen de Greenwich). Les dates sont censées être au format UTC, car l'emplacement physique du serveur hébergeant vos données peut se situer n'importe où dans le monde. L'alternative qui consiste à stocker la date et l'heure dans un fuseau local entraîne toutes sortes de problèmes, en particulier si vous, ou le serveur hébergeant vos données, déménagez dans un autre fuseau horaire.

Dès qu'un champ de date est affiché, la date est convertie de l'heure UTC dans votre heure locale. La conversion s'effectue en interrogeant votre ordinateur et en lui demandant son paramètre de fuseau horaire. Par exemple, supposons que votre ordinateur affiche l'heure standard du Pacifique (PST, Pacific Standard Time). L'heure UTC a huit heures d'avance sur l'heure PST. Lorsqu'il est 9 h 00 UTC, il est 01 h 00 PST (ou 02 h 00 si le passage à l'heure d'été a eu lieu).

Les dates que vous saisissez dans une expression sont censées être exprimées en heure UTC, et non dans l'heure de votre fuseau horaire actuel. Cette supposition peut prêter à confusion. Par exemple, si vous saisissez '05/27/2014 05:00:00PM' à l'aide d'un ordinateur configuré au format PST, les données s'afficheront sous la forme 27/05/2014 10 h 00 en raison de la conversion de l'heure décrite ci-dessus.

Pour prendre en compte la conversion du fuseau UTC vers le fuseau horaire local, voici quelques conseils :

  • Si vous devez entrer vos date et heure actuelles, utilisez une des fonctions horaires ci-dessous, car elles renvoient toujours l'heure UTC.
  • Si vous saisissez une date sans composant horaire, ajoutez 12 heures à la date. Par exemple, au lieu de saisir '5/27/2014', entrez '5/27/2014 12:00PM' ou '5/27/2014 12:00'. Ce décalage est nécessaire parce que, lorsqu'une date est entrée sans composant horaire, elle est saisie en considérant qu'il est minuit à cette date (la date 5/27/2014 est convertie en 5/27/2014 00:00:00). Lorsque la date s'affiche dans votre fuseau horaire local, des heures sont ajoutées ou soustraites. Par exemple, si vous utilisez le format PST et saisissez 5/27/2014, la date s'affiche sous la forme 5/26/2014 (sept heures soustraites depuis minuit le 27).
  • Si vous saisissez une date avec un composant horaire, appliquez le décalage de votre fuseau horaire à l'heure. Par exemple, si vous devez saisir 5/27/2014 12 PM PST, appliquez la différence de 8 heures et saisissez '5/27/2014 8:00PM'. Pour connaître le décalage de votre fuseau horaire, vous pouvez parcourir le Web à l'aide d'une expression de recherche, telle que calculatrice de décalage horaire UTC.
  • Pour afficher le contenu de votre champ de date en heure UTC, vous pouvez ajouter un champ de chaîne à votre table et le calculer pour qu'il soit égal à votre champ de date. La date est convertie en chaîne sans le décalage du fuseau horaire. Cette chaîne contient également des millisecondes.

Restrictions

  • L'option Supprimer n'est pas disponible pour le champ OBJECTID ou les champs utilisés pour la symbologie, le curseur temporel, les filtres, les étiquettes ou le suivi de l'éditeur. Toutefois, n'oubliez pas que d'autres cartes peuvent utiliser des champs pour la symbologie et les filtres qui sont différents des champs que votre carte utilise. L'option Supprimer est disponible pour ces champs. Soyez prudent lorsque vous supprimez des champs susceptibles d'être utilisés pour la symbologie et les filtres dans d'autres cartes.
  • Ajouter un champ, Supprimer et Calculer ne sont pas disponibles pour les copies de couches ou pour les couches d'entités hébergées auxquelles des couches de tuiles sont associées.
  • Les options Ajouter un champ, Supprimer et Calculer sont disponibles uniquement pour les couches d'entités hébergées et les tables. Vous devez être le propriétaire de la couche ou un administrateur de votre organisation pour utiliser cette fonctionnalité.
  • Seules les requêtes SQL normalisées sont prises en charge.