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 :
ArcGIS API for JavaScript 3.44 et versions ultérieures de 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 depuis la page des éléments d’une couche d’entités hébergée. Les sections suivantes offrent des exemples de calculs courants.
Calculez les valeurs d’un champ depuis la page des éléments.
Pour calculer les valeurs d’un champ de type chaîne, numérique ou date depuis la page des éléments d’une couche d’entités, procédez comme suit.
Remarque :
Les calculs de champs ne peuvent pas être annulés. Pour cette raison, il est recommandé d’ajouter un champ, d’y calculer les valeurs et de vérifier que le calcul vous convient. 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é.
- Sur la page d’élément de la couche, cliquez sur l’onglet Data (Données) pour afficher la table.
- Cliquez sur la colonne contenant les valeurs à calculer.
- 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).
- Choisissez le langage à utiliser 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.
- 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 présentes dans la 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 vous calculez les valeurs d’une couche dans Map Viewer Classic et qu’un filtre est appliqué à cette couche, seules les valeurs des enregistrements qui correspondent aux critères de filtrage sont 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 é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 que vous avez créé une expression SQL, 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 entre guillemets simples), le nombre 5, une date au format MM/JJ/AAAA hh:mm:ss ou AAAA-MM-JJ, ou une heure au format HH:MM:SS, entre guillemets simples.
- 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 :
Fonction | Description |
---|---|
CURRENT_DATE() | Renvoie la date actuelle en heure UTC. La valeur affichée 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). La valeur affichée 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). La valeur affichée 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 <date> spécifié. Parmi les valeurs <unit> possibles figurent, sans toutefois s’y limiter : year, month, day, hour et minute. Les exemples suivants extraient différentes unités à partir de la valeur de date et d’heure 21/12/2016 15 h 11 :
|
Fonctions numériques
Fonction | Description |
---|---|
ABS(<number>) | Renvoie la valeur absolue (positive) du nombre que vous spécifiez. |
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. Dans le premier exemple ci-dessous, le nombre est défini sur un entier. Les entiers représentant des nombres entiers, le résultat est 1424. Dans le deuxième exemple, un entier est défini sur le type flottant, ce qui donne comme résultat un nombre avec des décimales : 1424,0.
|
CEILING(<number>) | Renvoie le plus petit nombre entier supérieur ou égal au nombre spécifié. L’exemple suivant renvoie 13 : CEILING(12.93) |
COS(<number>) | Renvoie le cosinus trigonométrique de <number>, qui est censé être un angle en radians. |
FLOOR(<number>) | Renvoie le plus grand nombre entier qui est inférieur ou égal au nombre spécifié. L’exemple suivant renvoie 12 : FLOOR(12.93) |
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 :
|
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>). L’exemple suivant renvoie 32768 : POWER(8,5) |
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 à droite du séparateur décimal. Lorsque <length> est un nombre négatif, le <number> spécifié est arrondi à gauche du séparateur décimal. Voici quelques exemples :
|
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. Dans le premier exemple, les chiffres à droite du séparateur décimal sont tronqués pour inclure seulement deux chiffres. Le résultat est donc 111,99. Dans le deuxième exemple, les chiffres à gauche du séparateur décimal sont tronqués. Le résultat est donc 100,00.
|
Fonctions de chaîne
Fonction | Description |
---|---|
CAST(<string> AS DATE | TIME) | Convertit la chaîne en date ou heure si le format de sa valeur est pris en charge. Si la chaîne est au format ’MM/JJ/AAAA hh:mm:ss’ ou ’AAAA-MM-JJ’, vous pouvez la convertir en date. Si la chaîne est au format ’HH:MM:SS’, vous pouvez la convertir en données de type heure uniquement (TIME). Par exemple, la chaîne suivante peut être convertie en date : CAST('1988-05-30' AS DATE) |
CHAR_LENGTH(<string>) | Renvoie le nombre de caractères dans la chaîne spécifiée. Le résultat est un entier. Par exemple, l’instruction suivante renvoie 8 : CHAR_LENGTH('Redlands') |
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. Le premier exemple ci-dessous concatène les lettres A et B. Le deuxième exemple montre une fonction CONCAT imbriquée pour concaténer trois valeurs de chaîne : A, : et B.
Les valeurs Null sont converties en chaîne vide. |
CURRENT_USER | Lorsque la fonction CURRENT_USER est incluse dans une requête, elle agit comme une variable. Le nom d’utilisateur de l’utilisateur qui accède à la couche d’entités hébergée ou à la vue de couche d’entités hébergée est identifié et utilisé dans la requête. Par exemple, si l’utilisateur, planner3, est connecté à l’organisation pour accéder à une vue de couche d’entités hébergée qui contient l’ensemble de définitions suivant, seules les entités pour lesquelles le champ staffmember contient la valeur planner3 sont renvoyées à l’utilisateur qui se connecte : staffmember=current_user Dans l’exemple suivant, plusieurs valeurs sont enregistrées dans le champ staffmember. La clause where suivante recherche le nom de l’utilisateur actuel dans la valeur textuelle du champ staffmember, même si plusieurs noms d’utilisateur sont enregistrés dans ce champ : where=position(current_user in staffmember)>0 |
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. Dans le premier exemple ci-dessous, le résultat est 5, car la première lettre (b) de la sous-chaîne (boat) est la cinquième lettre de la chaîne (Sailboat). Dans le deuxième exemple, le résultat est 0, car la sous-chaîne (motor) n’est pas présente dans la chaîne.
|
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. Consultez les exemples ci-dessous :
|
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. Dans l’exemple suivant, il existe un espace avant et après la chaîne, San Bernardino. Le mot-clé BOTH est utilisé pour tronquer la chaîne d’espace (ce qui est indiqué par l’utilisation de deux guillemets avec un espace au milieu) au début et à la fin de la chaîne de texte : TRIM(BOTH ' ' FROM ' San Bernardino ') Cela renvoie la chaîne 'San Bernardino'. |
UPPER(<string>) | Renvoie une chaîne où tous les caractères sont convertis en majuscules. Dans cet exemple, toutes les lettres de la chaîne Sailboat sont converties en lettres majuscules, créant ainsi la chaîne 'SAILBOAT' : UPPER('Sailboat') |
LOWER(<string>) | Renvoie une chaîne où tous les caractères sont convertis en minuscules. Dans l’exemple suivant, 'sailboat' est renvoyé : LOWER('Sailboat') |
Vous avez un commentaire à formuler concernant cette rubrique ?