Calculer des valeurs de champs

Les calculs de champ permettent au propriétaire de la couche d’entités hébergée ou à l’administrateur de l’organisation de modifier les valeurs de chaque ligne d’un champ unique dans la table attributaire d’une couche.

Par exemple, si vous avez une couche d’entités hébergée qui archive les informations sur ventes immobilières, comprenant le prix de vente et le taux d’imposition pour l’emplacement du bien, vous pouvez ajouter un champ à la couche pour stocker les impôts fonciers estimées. Pour renseigner le champ estimated_property_taxes, définissez pour ce champ une expression de calcul qui prend les valeurs du champ sale_price et les multiplie par les valeurs tax_rate.

Vous avez deux options lorsque vous écrivez des expressions de calcul sur les champs d’une couche dans une couche d’entités hébergée :

  • ArcGIS Arcade : Arcade est idéal pour les calculs qui requièrent davantage de fonctionnalités que SQL, car Arcade fournit un accès aux valeurs attributaires et à la géométrie des entités, vous permettant ainsi de créer des expressions qui incluent des opérations spatiales. De plus, si une erreur se produit lors du calcul d’une ligne en particulier, vous pouvez vous arrêter et résoudre le problème, puis recommencer le calcul une fois le problème corrigé.

    Remarque :

    Vous devez activer la mise à jour sur la couche pour effectuer les calculs à l’aide d’expressions Arcade, mais la synchronisation de la couche ne peut pas être activée. Pour plus d’informations sur la modification des paramètres de mise à jour et de synchronisation, reportez-vous à la rubrique Gérer les couches d’entités hébergées.

  • SQL : utilisez SQL pour obtenir des performances plus rapides lors de calculs pouvant être réalisés avec des expressions SQL standardisées (SQL-92) ou des attributs non spatiaux. Vous pouvez exécuter SQL sur des couches d’entités hébergées pour lesquelles la synchronisation est activée et des couches configurées pour le suivi des créateurs et des éditeurs d’entités, tandis que vous ne pouvez pas utiliser d’expressions Arcade sur de telles couches.

La prochaine section explique comment calculer les valeurs d’un champ sur la page des détails d’une couche d’entités hébergée. Les sections suivantes offrent des exemples de calculs courants.

Calculer les valeurs d’un champ

Procédez comme suit pour calculer les valeurs de chaîne, numériques ou de date dans un champ.

Remarque :
Les calculs de champs ne peuvent pas être annulés. Pour cette raison, il est judicieux d’ajouter un champ, d’y calculer les valeurs et de vérifier que le calcul correspond à vos attentes. Si c’est le cas, vous pouvez calculer la valeur du champ original pour qu’elle soit égale à celle du champ ajouté. Une fois que vous avez vérifié que les valeurs sont correctes dans le champ original, vous pouvez supprimer le champ que vous avez ajouté.

  1. Sur la page d’élément de la couche, cliquez sur l’onglet Data (Données) pour afficher la table.
    Conseil :

    Vous pouvez aussi effectuer ces étapes à partir du tableau dans Map Viewer Classic.

  2. Cliquez sur la colonne contenant les valeurs à calculer.
  3. Pour ouvrir la boîte de dialogue Calculate Field (Calculer un champ), procédez de l’une des manières suivantes :
    • Cliquez sur Calculer.
    • Cliquez sur Show Detailed View (Afficher la vue détaillée) > Calculate (Calculer).
  4. Choisissez le langage à employer pour le calcul, Arcade ou SQL.

    Si la synchronisation est activée pour la couche d’entités hébergée ou si cette dernière est configurée de façon à conserver le suivi des créateurs et des éditeurs des entités, cette page n’est pas visible. La fenêtre SQL s’ouvre en revanche.

  5. Rédigez une expression de calcul.
    • Pour SQL, utilisez des opérateurs de base, une liste de champs et des fonctions. Cliquez sur le bouton Validate (Valider) pour vérifier qu’il n’existe aucune erreur dans l’expression. Si l’expression n’est pas valide, cliquez sur le bouton Remove (Supprimer) et générez une nouvelle expression. Une fois l’expression terminée et valide, cliquez sur Calculate (Calculer).
    • Pour Arcade, utilisez des variables globales, des fonctions et des constantes. Cliquez sur OK pour exécuter l’expression. Si une erreur se produit lors de l’exécution de l’expression, vous pouvez cliquer sur Review Error (Examiner l’erreur) pour ouvrir la fenêtre d’expression afin de pouvoir corriger l’erreur. Sinon, cliquez sur Cancel (Annuler). Si vous corrigez l’expression et que vous l’exécutez à nouveau, le calcul recommence.

Le temps nécessaire au calcul dépend de la complexité de l’expression et du nombre d’entités figurant dans votre couche.

Exemples de calculs

Les sections suivantes offrent une syntaxe ou des méthodes d’exemple pour effectuer des calculs courants dans ArcGIS Enterprise.

Effectuer une opération mathématique sur des valeurs numériques dans deux champs existants pour renseigner un troisième champ

Un des calculs les plus courants que vous effectuez consiste à déduire une nouvelle valeur numérique en fonction de valeurs existantes dans votre couche d’entités. Vous pouvez par exemple soustraire les ventes totales d’une année pour tous vos points de vente des ventes totales d’une autre année afin de connaître l’évolution du bénéfice d’une année à l’autre. Vous pouvez également diviser le nombre total d’habitants âgés de moins de 18 ans par la population totale pour connaître la proportion de la population de moins de 18 ans.

Exemples Arcade

Calculez la différence entre les valeurs de deux champs numériques, Sales2016 et Sales2017, pour renseigner un champ numérique.

$feature.Sales2016 - $feature.Sales2017

Exemples SQL

Utilisez le calcul sur un champ numérique (SalesDifference) pour connaître la différence entre les valeurs des champs numériques, Sales2016 et Sales2017.

Sales2016 - Sales2017

Renseignez un champ numérique avec un nombre décimal découlant du calcul de la portion de la population âgée de moins de 18 ans.

PopUnder18/TotalPop

Concaténez les valeurs de chaîne de champs existants dans un nouveau champ de chaîne

Pour renseigner un nouveau champ, vous pouvez également associer les valeurs de champs de chaîne existants. Vous pouvez par exemple avoir deux champs de chaîne pour désigner l’emplacement des chambres d’un hôtel (Étage et Chambre) et vous voulez les associer dans un champ de chaîne contenant les deux.

Dans les exemples suivants, les valeurs des champs Floor (Étage) et Room (Chambre) seront associés dans un seul champ.

Exemple de Arcade

Concatenate($feature.room,$feature.floor)

Exemple SQL

CONCAT(Floor,Room)

Supprimer les espaces de début ou de fin des champs de chaîne

Lorsque les utilisateurs saisissent ou collent des valeurs dans un champ pendant une session de mise à jour, ils peuvent commettre des erreurs et laisser un espace de début ou de fin dans le texte. Vous pouvez nettoyer ces erreurs en réduisant les valeurs.

Dans ces exemples, vous savez que l’éditeur a ajouté un espace de fin lorsqu’il a collé Hampshire dans le champ des noms d’État, vous allez donc supprimer l’espace à la fin de la chaîne.

Exemple de Arcade

Trim('New Hampshire ')

Exemple SQL

Trim(TRAILING ' ' FROM 'New Hampshire ')

Renseigner un champ avec différentes valeurs selon les valeurs d’un autre champ

Il peut arriver que la valeur que vous souhaitez voir ajoutée à un champ varie en fonction de l’entité et dépende d’une autre valeur pour la même entité. Vous pouvez par exemple ajouter un champ de chaîne dans une couche d’entités pour stocker du texte décrivant une valeur de chaîne numérique ou abrégée dans un autre champ. L’interface de calcul SQL ne permettant pas d’effectuer cette opération, utilisez Arcade pour ces types de calculs.

Exemple de Arcade

L’exemple suivant écrit de manière conditionnelle des valeurs de chaîne différentes (None, Low, High, ou Other) dans un champ de texte en fonction du nombre figurant dans un autre champ de la couche (HowMany).

When(
  $feature.HowMany == 0, "None",
  $feature.HowMany == 1, "Low",
  $feature.HowMany == 2,  "High",
"Other")

Utiliser un filtre dans Map Viewer Classic

Si vous ne souhaitez pas utiliser une expression Arcade, vous pouvez appliquer un filtre à la couche dans la carte, calculer les valeurs des entités filtrées, supprimer ce filtre, appliquer un autre filtre en fonction d’une autre valeur, puis calculer les valeurs de ces champs. Ceci est décrit dans les étapes suivantes.

Par exemple, si vous avez un champ numérique qui contient les types de points de vente avec des codes (3, 2 et 1) et que vous voulez un champ de chaîne qui énonce clairement ce que représente chacun de ces codes (chaîne, franchise et magasin indépendant), vous pouvez ajouter un champ de chaîne à la couche, ajouter la couche à la carte, filtrer chaque valeur de code et calculer la valeur du champ de chaîne.

  1. Ajoutez un champ de chaîne à la couche d’entités hébergée. Définissez la longueur pour adapter le champ à la chaîne la plus longue que vous allez intégrer.

    Dans l'exemple des types de points de vente, le nouveau champ se nomme TypeFull.

  2. Sur l’onglet Overview (Vue d’ensemble) de la page des détails de la couche, cliquez sur Open in Map Viewer Classic (Ouvrir dans Map Viewer Classic).
  3. Définissez un filtre sur la couche afin que seules les entités du même type soient présentes sur la carte.

    Pour l'exemple des points de vente, appliquez un filtre qui renvoie uniquement les entités pour lesquelles la valeur du champ StoreCode est 3.

  4. Ouvrez la table attributaire de la couche.
  5. Cliquez sur le nom du champ que vous avez ajouté à l’étape 1 et sur Calculate (Calculer).

    Pour cet exemple, cliquez sur le nom du champ TypeFull, puis sur Calculate (Calculer).

  6. Saisissez la chaîne à insérer dans ce champ pour ces entités. Mettez la chaîne entre guillemets simples ('').

    Saisissez'chaîne' pour renseigner le champ StoreCode pour toutes les entités ayant la TypeFull valeur 3.

  7. Cliquez sur Calculer.
  8. Supprimez le filtre défini à l’étape 3. Rouvrez la fenêtre Filter (Filtre) de la couche et cliquez sur Remove Filter (Supprimer le filtre).
  9. Répétez les étapes 3 à 8 pour les valeurs restantes à calculer.

    Pour l’exemple des points de vente, définissez un filtre qui renvoie les entités pour lesquelles la valeur du champ StoreCode est égale à 2 et définissez le champ TypeFull sur le point de vente 'franchise'. Supprimez ce filtre, définissez-en un nouveau qui renvoie uniquement les entités dont la valeur de champ StoreCode est égale à 1, puis définissez le champ TypeFull sur le point de vente 'magasin indépendant'.

  10. Une fois les valeurs du nouveau champ calculées, fermez la carte sans l’enregistrer.

Remplacer une valeur par une autre

Si vous devez remplacer une valeur existante par une autre (par exemple, si la façon dont vous représentez une valeur en particulier a changé ou si vous devez corriger des valeurs incorrectement saisies), vous pouvez trouver toutes les valeurs existantes d’un champ et les remplacer par une nouvelle valeur. L’interface de calcul SQL ne permettant pas d’effectuer cette opération, utilisez Arcade pour ces types de calculs.

Attention :

Les calculs sont immédiatement enregistrés dans la couche d’entités. Si vous remplacez une valeur existante par erreur, vous devez relancer le calcul pour rétablir la valeur.

Exemple de Arcade

Cet exemple utilise la fonction Remplacer pour remplacer l’orthographe anglaise (en couleur) par l’orthographe américaine.

Replace($feature.color, 'colour', 'color')

Utiliser un filtre dans Map Viewer Classic

Tout comme vous renseignez un champ en fonction des valeurs d’un autre champ, vous pouvez appliquer un filtre à la couche dans la carte qui renvoie uniquement les entités contenant la valeur de champ à remplacer. Définissez ensuite les champs filtrés comme étant égaux à la nouvelle valeur pour mettre à jour la valeur des champs.

Par exemple, si vous devez corriger des valeurs incorrectement saisies ou convertir un mot en abréviation, filtrez la chaîne littérale à changer et définissez le champ comme étant égal à la nouvelle valeur.

  1. Ajoutez la couche d’entités hébergée à mettre à jour dans Map Viewer Classic.

    Vous devez être le propriétaire de la couche ou un administrateur du portail.

  2. Définissez un filtre sur la couche afin que seules les entités contenant la valeur à remplacer apparaissent sur la carte.

    Par exemple, si vous savez que certaines entités contiennent des valeurs Crt pour le champ StreetType, appliquez un filtre qui renvoie uniquement les entités pour lesquelles la valeur du champ StreetType est égale à Crt.

  3. Ouvrez la table attributaire de la couche.
  4. Cliquez sur le nom du champ, puis sur Calculate (Calculer).

    Pour cet exemple, cliquez sur le champ StreetType, puis sur Calculate (Calculer).

  5. Saisissez la chaîne à insérer dans ce champ pour ces entités. Mettez la chaîne entre guillemets simples ('').

    Saisissez'Ct' pour renseigner les champs StreetType filtrés avec l’abréviation corrigée de « Court ».

  6. Cliquez sur Calculate (Calculer) pour appliquer les modifications aux champs filtrés.
  7. Fermez la carte sans l’enregistrer.

Déterminer la densité d’un attribut numérique par zone surfacique

Pour calculer la densité d’un attribut dans une zone, utilisez une expression Arcade, car vous ne pouvez pas réaliser de calculs SQL dans le champ spatial depuis l’interface de calcul.

Exemple de Arcade

Cet exemple détermine la densité de population par entité en divisant la valeur de la population totale (TotalPop) par la surface en miles carrés de l’entité surfacique :

$feature.TotalPop / Area ($feature,
'square-miles')

Déduire la coordonnée d’une entité ponctuelle

Vous pouvez utiliser une expression Arcade pour renvoyer la coordonnée de longitude ou de latitude des champs spatiaux dans une couche d’entités hébergée contenant uniquement des points.

Ce type de calcul n’est pas pris en charge dans le champ spatial depuis l’interface de calcul.

Exemple de Arcade

Cet exemple calcule un champ indiquant la coordonnée x de chaque point d’une couche de points à l’aide de la fonction Geometry.

Geometry($feature).x

Ajouter du temps ou soustrayez-en d'une date

Vous pouvez ajouter du temps ou en soustraire d’un champ de date ou d’une valeur littérale de date 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.

Exemple de Arcade

Cet exemple utilise la fonction DateAdd pour ajouter sept jours à une date et obtenir la date de la semaine suivante.

var startDate = Date($feature.dateField);
var oneWeekLater = DateAdd(startDate, 7, 'days');
return oneWeekLater;

Exemples SQL

Utilisez une requête INTERVAL pour ajouter du temps ou en soustraire d’un champ de date, comme illustré dans les calculs ci-après. Le premier exemple ajoute trois jours à une date pour obtenir une nouvelle date. Le deuxième exemple soustrait trois jours d’un champ d’horodatage.

<DateField> + INTERVAL '3'DAY = updated date
<DateField> - INTERVAL '3 00:00:60' DAY TO SECOND = updated date

Vous pouvez utiliser INTERVAL avec les valeurs de date et d’heure suivantes :

  • DAY
  • HOUR
  • MINUTE
  • SECOND
  • DAY TO HOUR
  • DAY TO MINUTE
  • DAY TO SECOND
  • HOUR TO MINUTE
  • HOUR TO SECOND
  • MINUTE TO SECOND

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.

Exemple de Arcade

L’exemple suivant utilise la fonction DateDiff pour calculer l’âge d’une personne en recherchant la différence entre la date actuelle (endDate) et la date de naissance de la personne (startDate) :

var startDate = Date($feature.startDateField);
var endDate = Date($feature.endDateField);
var age = DateDiff(endDate, startDate, 'years');
return age;

Exemples SQL

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 numérique calculé en soustrayant un champ ou une valeur littérale de date à partir d’un autre champ ou d’une autre valeur littérale 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)

Considérations relatives au calcul de valeurs de champ

  • Si un filtre est appliqué à votre couche sur la carte, seules les valeurs des enregistrements répondant aux critères de filtre seront calculées.
  • Lorsque vous écrivez des expressions SQL, Calculate Field (Calculer un champ) 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.
  • Seules les requêtes SQL standardisées sont prises en charge lors du calcul de valeurs de champ.
  • Vous ne pouvez pas utiliser la fonction numérique MOD sur les champs doubles. Définissez le champ sur une valeur entière, comme indiqué dans l’exemple.
  • Vous ne pouvez pas rédiger d’expressions Arcade pour les couches d’entités hébergées pour lesquelles la synchronisation est activée ou qui sont configurées pour assurer le suivi du créateur des entités et de la personne ayant effectué la dernière mise à jour.

Référence des expressions SQL standardisées (SQL-92)

Lorsque vous rédigez une expression SQL pour calculer des valeurs de champ, utilisez une requête SQL standardisée. Cette section fournit la liste des opérateurs et des fonctions SQL que vous pouvez utiliser pour réaliser des calculs SQL dans ArcGIS Enterprise.

Une fois votre expression SQL créée, cliquez sur le bouton Calculate (Calculer). En cas d’erreur, un message d’erreur apparaît au bas de la boîte de dialogue. Corrigez la syntaxe de l’expression et relancez le calcul.

Opérateurs

Dans la boîte de dialogue Calculate Field (Calculer un champ), vous pouvez générer des expressions SQL simples à l’aide d’opérateurs tels que plus, moins, multiplier et diviser. Voici des exemples et des conseils d’utilisation de ces opérateurs :

  • Pour multiplier toutes les valeurs dans un champ numérique nommé SAMPLE par 100,0, saisissez l'expression SAMPLE * 100,0.
  • 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.

Fonctions

Outre les expressions simples qui utilisent des opérateurs, vous pouvez également utiliser des fonctions pour générer des expressions SQL. 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’ (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.
  • 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 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.

Avant d’utiliser des champs de date, tenez compte de ces points importants.

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 valeurs littérales de date, vous devez utiliser les formats de date compatibles avec SQL.

Les fonctions de date suivantes sont disponibles :

FonctionDescription

CURRENT_DATE

Renvoie la date actuelle en heure UTC.

Ce que vous voyez dans le client dépend du client que vous utilisez. Sur le site web du portail, les dates s’affichent dans le fuseau horaire de votre navigateur.

L’exemple suivant renvoie toutes les valeurs du champ inspection_date dont la date est ultérieure à la date d’aujourd’hui :

inspection_date > CURRENT_DATE

CURRENT_TIMESTAMP

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

Ce que vous voyez dans le client dépend du client que vous utilisez. Sur le site web du portail, l’heure s’affiche dans l’heure locale de votre navigateur.

Dans cet exemple, toutes les valeurs d’horodatage antérieures à la date d’aujourd’hui et à l’heure actuelle (en UTC) sont renvoyées pour le champ appointments :

appointments < CURRENT_TIMESTAMP

EXTRACT(<unit> FROM '<date>')

Renvoie une seule partie (<unit>) de <date> spécifié. Les valeurs possibles de <unit> incluent, sans s’y limiter, l’année, le mois, le jour, l’heure et la minute.

Voici quelques exemples :

  • 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:44') : renvoie 15.

Fonctions numériques

FonctionDescription

ABS(<number>)

Renvoie la valeur absolue (positive) du nombre que vous spécifiez.

CEILING(<number>)

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

Exemple

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

COS(<number>)

Renvoie le cosinus trigonométrique de <number>, qui est censé être un angle en radians.

CAST(<number> AS FLOAT | INT)

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

FLOOR(<number>)

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

Exemple

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

LN(<number>,<decimal_place>)

Logarithme naturel du nombre spécifié.

LOG(<number>,<decimal_place>)

Logarithme de base 10 du nombre spécifié.

MOD(<number>, <n>)

Renvoie le reste une fois le dividende (<nombre>) divisé par le diviseur <n>. <n> et <nombre> doivent tous les deux être de type entier.

Voici quelques exemples :

  • 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(<number>, <value>)

Renvoie null si le nombre spécifié est égal à la valeur spécifiée. NULLIF est fréquemment utilisé pour éviter les erreurs de division par zéro en définissant <value> 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 une valeur POP18 égale à 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 effectuer le calcul. Il est plus rapide d’utiliser NULLIF.

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

POWER(<number> , <y>)

Renvoie la valeur du nombre spécifié élevée à la puissance indiquée (<y>).

ROUND(<number> , <length>)

Arrondit le nombre que vous spécifiez à la longueur spécifiée.

Si <length> est un nombre positif, le nombre est arrondi à la position décimale spécifiée par <length>. Lorsque <length> est un nombre négatif, le <number> spécifié est arrondi à gauche du séparateur décimal.

Exemples

  • ROUND(10.9934,2) : renvoie 10,99.
  • ROUND(10.9964,2) : renvoie 11,00.
  • ROUND(111.0,-2) : renvoie 100,00.

SIN(<number>)

Renvoie le sinus trigonométrique du <number> spécifié, qui est censé être un angle en radians.

TAN(<number>)

Renvoie la tangente du <number> spécifié, qui est censé être un angle en radians.

TRUNC(<number>,<decimal_place>)

Tronque <number> au <decimal_place> spécifié.

Un <decimal_place> positif tronque à la position décimale spécifiée. Lorsque <decimal_place> est un nombre négatif, <number> est arrondi à gauche du séparateur décimal.

Exemples

  • TRUNC(111.996,2) : renvoie 111,99.
  • TRUNC(111.996,-2) : renvoie 100,00.

Fonctions de chaîne

FonctionDescription

CHAR_LENGTH(<string>)

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

Exemple

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

CONCAT(<string1>, <string2>)

Concatène deux valeurs de chaîne.

Deux chaînes uniquement peuvent être fournies. Pour concaténer plus de deux chaînes, imbriquez plusieurs fonctions CONCAT consécutives, comme indiqué ci-après.

Exemples

  • 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(<substring> in <string>)

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

Exemples

  • POSITION('boat'in 'Sailboat') : le résultat est 5.
  • POSITION('motor'in 'Sailboat') : le résultat est 0.

SUBSTRING(<string>, <start>, <length>)

Renvoie une partie d’une valeur de chaîne ; <start> est un index entier qui indique l’endroit où les caractères renvoyés débutent et <length> désigne le nombre de caractères à renvoyer.

Exemples

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

TRIM(BOTH | LEADING | TRAILING ' ' FROM <string>)

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

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(<string>)

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

Exemple

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

LOWER(<string>)

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

Exemple

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