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.
Pour ajouter, supprimer ou calculer des champs dans une table, vous devez d'abord afficher la table. Reportez-vous à la rubrique Afficher des tables pour plus d'informations sur les tables.
- Ouvrez la carte comportant les données d'entités que vous souhaitez afficher dans une table.
- Cliquez sur Détails et sur Contenu.
- Accédez à la couche d'entités et cliquez sur Afficher la table. La table apparaît au bas de votre carte.
Ajouter un champ
- Cliquez sur Options de la table.
- 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 :
- Date : date et heure. Consultez la discussion de la section Fonctions de date.
- Double : nombres avec décimales.
- Entier : nombres entiers compris entre -2 147 483 648 et 2 147 483 647 (entier long).
- Chaîne : n'importe quelle séquence de caractères.
- 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
- Cliquez sur la colonne contenant le champ à supprimer.
- Cliquez sur Supprimer. Vous êtes invité à confirmer 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
- Cliquez sur la colonne contenant le champ dont vous voulez calculer les valeurs.
- 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.
- 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 cette rubrique.
- 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. Consultez 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.
Autres remarques
- 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 '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, 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 ci-dessous utilisent principalement des arguments littéraux. Vous pouvez remplacer un nom de champ ou une autre fonction pour ces arguments.
Fonctions de chaîne
Fonction | Description |
---|---|
CHAR_LENGTH(chaîne) | Renvoie le nombre de caractères dans la chaîne. Le résultat est un entier. Exemple :
|
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 :
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:
|
SUBSTRING(chaîne, début, longueur) | Revoie une partie de la chaîne. Le début est un index entier qui indique l'endroit où les caractères renvoyés débutent et la longueur désigne le nombre de caractères à renvoyer. Exemple :
|
TRIM(BOTH | LEADING | TRAILING ' ' FROM chaîne) | Renvoie une chaîne dans laquelle tous les espaces de début ou de fin sont supprimés de la chaîne. Exemple :
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 :
|
LOWER(chaîne) | Renvoie une chaîne où tous les caractères dans la chaîne sont convertis en minuscules. Exemple :
|
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.
- Cliquez sur la colonne contenant le champ des valeurs dont vous voulez calculer les statistiques.
- Cliquez sur Statistiques. Une boîte de dialogue affiche les statistiques calculées.
Fonction | Description |
---|---|
ABS(nombre) | Renvoie la valeur absolue (positive) du nombre. |
CEILING(nombre) | Renvoie le plus petit nombre entier supérieur ou égal au nombre. Exemple :
|
COS(nombre) | Renvoie le cosinus trigonométrique du nombre, qui est censé être un angle en radians. |
CAST(nombre AS 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 :
|
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 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 :
|
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.
|
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:
|
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, décimale)* 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 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:
|
Fonctions de date
Vous pouvez attribuer une date et une heure à un champ de date. Les opérations, telles que la soustraction de deux dates, ou l'ajout d'une heure à un champ de date, ne sont pas prises en charge.
Avant de commencer à calculer des champs de date, voici quelques points à prendre en compte.
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 sur 17 h 00 le 27 mai 2014, vous devez saisir '05/27/2014 05: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 soit défini sur l'heure standard du Pacifique (PST, Pacific Standard Time). L'heure PST est décalée de huit heures en arrière par rapport à l'heure UTC (lorsqu'il est 09 h 00 UTC, il est 02 h 00 PST (ou 01 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 5/27/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 entrer 5/27/2014 12PM PST, appliquez la différence de huit 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.
Fonctions de date
Fonction | Description |
---|---|
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). |
Restrictions
- La suppression n'est pas possible pour le ou les champs OBJECTID 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.
- L'ajout, la suppression et le calcul ne sont pas possibles pour les copies de couches.
- L'ajout, la suppression et le calcul sont possibles uniquement pour les couches d'entités hébergées. Vous devez être le propriétaire de la couche d'entités hébergée ou un administrateur de votre organisation.
- Le calcul est possible uniquement si le serveur d'hébergement de votre portail utilise ArcGIS Data Store.
- Seules les requêtes SQL normalisées sont prises en charge.
Vous avez un commentaire à formuler concernant cette rubrique ?