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 :

    Les versions 3.44 et ultérieures de ArcGIS API for JavaScript ne seront pas mises à jour avec les dernières fonctionnalités de langage ArcGIS Arcade. Les expressions Arcade créées dans les applications JavaScript API dans les versions 3.44 ou ultérieures prennent uniquement en charge les fonctionnalités de langage Arcade introduites dans Arcade version 1.21 ou antérieures. Pour en savoir plus sur la prise en charge du support de langage Arcade dans les produits ArcGIS, consultez la matrice des versions Arcade.

  • 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 d’exemple pour effectuer des calculs courants dans ArcGIS Online.

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

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")

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')

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

Les calculs suivants peuvent être utilisés pour ajouter ou soustraire du temps à partir d'un champ de date ou avec une valeur littérale de date prise en charge par SQL. 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.

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.
  • Vous ne pouvez pas calculer de valeurs de champ dans des copies de couches d’entités hébergées ou des couches d’entités hébergées associées à des couches de tuiles.
  • Les valeurs calculées ne sont pas propagées depuis la couche d’entités hébergées ou la vue vers les couches de scènes hébergées dépendantes.
  • La mise en forme spécifique aux valeurs locales n’est pas prise en charge pour les nombres figurant dans les expressions SQL. Par exemple, il vous faut un séparateur décimal pour les valeurs de table attributaire plutôt qu’un séparateur virgule lorsque la valeur locale est définie sur Spain (Espagne).
  • 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.
  • Vous ne pouvez pas utiliser Arcade pour calculer les valeurs des types de données de champ suivants dans la page des détails des éléments d’une couche d’entités :
    • Entier très grand
    • Date uniquement
    • Heure uniquement
    • Décalage de l’horodatage

    Remarque :
    Si une couche d’une couche d’entités hébergées contient ces types de données, les calculs Arcade sont désactivés pour l’intégralité de la couche d’entités hébergées, y compris pour les sous-couches qui ne contiennent pas les types de données non pris en charge.

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 Online.Cette section fournit la liste des opérateurs et des fonctions SQL que vous pouvez utiliser pour réaliser des calculs SQL dans

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. Dans ArcGIS Online, les dates s’affichent dans le fuseau horaire de votre organisation ou de votre profil.

CURRENT_TIME()

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. Dans ArcGIS Online, l’heure s’affiche dans l’heure locale de votre organisation ou de votre profil.

CURRENT_TIMESTAMP()

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

Ce que vous voyez dans le client dépend du client que vous utilisez. Dans ArcGIS Online, l’heure s’affiche dans l’heure locale de votre organisation ou de votre profil.

EXTRACT(<unit> FROM <date>)

Renvoie une seule partie (<unit>) de l’élément <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.

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) : 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.

LOG(<number>)

Logarithme naturel du nombre spécifié.

LOG10(<number>)

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.

TRUNCATE(<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

  • TRUNCATE(111.996,2) : renvoie 111,99.
  • TRUNCATE(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>, <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', 'Sailboat') : le résultat est 5.
  • POSITION('motor', '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'.