Éditer les expressions
L’édition d’une expression consiste à saisir manuellement des conditions pour former une règle. Ce mode permet d’utiliser des fonctions avancées, vous permettant ainsi de manipuler les valeurs utilisées afin de réaliser des requêtes spécifiques : manipulation de dates, de chaînes, de champs numériques, tris, etc.
Utiliser l’éditeur d’expression
L’éditeur d’expression est disponible à partir du bouton Modifier une expression du concepteur de requête, disponible pour les champs Attribut et Valeur lors de la configuration d’une condition personnalisée.
Accéder depuis le champ Attribut | Accéder depuis le champ Valeur |
---|---|
![]() |
![]() |
L’éditeur d’expression fournit :
- un champ de saisie (1), dans lequel l’expression est définie ;
- la liste des champs (2) disponibles, utilisables dans l’expression et correspondant à la dimension de ciblage de la requête ;
- des fonctions d’assistance (3), triées par catégorie.
Modifiez l’expression en saisissant une expression directement dans le champ de saisie. Pour ajouter un champ ou une fonction d’assistance, placez le curseur dans l’expression à l’endroit où vous souhaitez l’ajouter, puis cliquez sur le bouton +.
Lorsque votre expression est prête, cliquez sur le bouton Confirmer. L’expression s’affiche dans le champ sélectionné. Pour la modifier, ouvrez l’éditeur d’expression et apportez les modifications souhaitées.
L’exemple ci-dessous présente une expression configurée pour le champ Valeur. Pour la modifier, vous devez ouvrir l’éditeur d’expression à l’aide du bouton Modifier une expression.
Fonctions d’assistance
L’outil d’édition de requêtes permet d’utiliser des fonctions avancées pour réaliser un filtrage complexe en fonction des résultats souhaités et des types de données manipulées. Les fonctions suivantes sont disponibles :
Agrégat
Elles sont utilisées pour effectuer des calculs sur un ensemble de valeurs.
Nom | Description | Syntaxe |
Avg | Renvoie la moyenne d'une colonne de type numérique | Avg(<valeur>) |
Count | Compte les valeurs non nulles d'une colonne | Count(<valeur>) |
CountAll | Compte les valeurs retournées (tous champs confondus) | CountAll() |
Countdistinct | Compte les valeurs distinctes non nulles d'une colonne | Countdistinct(<valeur>) |
Max | Renvoie la valeur maximum d'une colonne de type nombre, chaîne ou date | Max(<valeur>) |
Min | Renvoie la valeur minimum d'une colonne de type nombre, chaîne ou date | Min(<valeur>) |
StdDev | Renvoie l'écart type d'une colonne de type nombre | StdDev(<valeur>) |
StringAgg | Renvoie la concaténation des valeurs d’une colonne de type chaîne, séparées par le caractère du deuxième argument . | StringAgg(<Value>,<String>) |
Sum | Renvoie la somme des valeurs d'une colonne de type nombre, chaîne ou date | Sum(<valeur>) |
Date
Les fonctions de date sont utilisées pour manipuler des valeurs de date ou d'heure.
Nom | Description | Syntaxe |
AddDays | Ajoute un nombre de jours à une date | AddDays(<date>, <nombre>) |
AddHours | Ajoute un nombre d'heures à une date | AddHours(<date>, <nombre>) |
AddMinutes | Ajoute un nombre de minutes à une date | AddMinutes(<date>, <nombre>) |
AddMonths | Ajoute un nombre de mois à une date | AddMonths(<date>, <nombre>) |
AddSeconds | Ajoute un nombre de secondes à une date | AddSeconds(<date>, <nombre>) |
AddYears | Ajoute un nombre d'années à une date | AddYears(<date>, <nombre>) |
ConvertNTZ | Convertit l’horodatage NTZ (horodatage sans fuseau horaire) en TZ (horodatage avec fuseau horaire) en application de la valeur TZ de session définie. | ConvertNTZ (<date+heure>) |
DateCmp | Comparer deux dates | DateCmp(<date>,<date>) |
DateOnly | Renvoie la date uniquement (avec heure à zéro)* | DateOnly(<date>) |
Jour | Renvoie le nombre représentant le jour de la date | Day(<date>) |
DayOfYear | Renvoie le numéro du jour dans l'année de la date | DayOfYear(<date>) |
DaysAgo | Renvoie la date correspondant à la date courante moins n jours | DaysAgo(<nombre>) |
DaysAgoInt | Renvoie la date (entier aaaammjj) correspondant à la date courante moins n jours | DaysAgoInt(<nombre>) |
DaysDiff | Nombre de jours entre deux dates | DaysDiff(<date de fin>, <date de début>) |
DaysOld | Renvoie l'ancienneté en jours d'une date | DaysOld(<date>) |
GetDate | Renvoie la date système courante du serveur | GetDate() |
Hour | Renvoie l'heure de la date | Hour(<date>) |
HoursDiff | Renvoie le nombre d'heures entre deux dates | HoursDiff(<date de fin>, <date de début>) |
Minute | Renvoie les minutes de la date | Minute(<date>) |
MinutesDiff | Renvoie le nombre de minutes entre deux dates | MinutesDiff(<date de fin>, <date de début>) |
Month | Renvoie le nombre représentant le mois de la date | Month(<date>) |
MonthsAgo | Renvoie la date correspondant à la date courante moins n mois | MonthsAgo(<nombre>) |
MonthsDiff | Renvoie le nombre de mois entre deux dates | MonthsDiff(<date de fin>, <date de début>) |
MonthsOld | Renvoie l'ancienneté en mois d'une date | MonthsOld(<date>) |
Oldest | Renvoie la date la plus ancienne d’une plage. | Oldest (<date, date>) |
Second | Renvoie les secondes de la date | Second(<date>) |
SecondsDiff | Renvoie le nombre de secondes entre deux dates | SecondsDiff(<date de fin>, <date de début>) |
SubDays | Enlève un nombre de jours à une date | SubDays(<date>, <nombre>) |
SubHours | Enlève un nombre d'heures à une date | SubHours(<date>, <nombre>) |
SubMinutes | Enlève un nombre de minutes à une date | SubMinutes(<date>, <nombre>) |
SubMonths | Enlève un nombre de mois à une date | SubMonths(<date>, <nombre>) |
SubSeconds | Enlève un nombre de secondes à une date | SubSeconds(<date>, <nombre>) |
SubYears | Enlève un nombre d'années à une date | SubYears(<date>, <nombre>) |
ToDate | Convertit une date + heure en date seule | ToDate(<date + heure>) |
ToDateTime | Convertit une chaîne en date + heure | ToDateTime(<chaîne>) |
ToTimestamp | Convertir une chaîne en date et heure | ToTimestamp(<string>) |
ToTimeZone | Convertir une date et une heure en fuseau horaire | ToTimeZone(<date>,<time zone>) |
TruncDate | Arrondit une date + heure à la seconde | TruncDate(@lastModified, <nombre de secondes>) |
TruncDateTZ | Arrondit une date + heure à la seconde près | TruncDateTZ(<date>, <nombre de secondes>, <fuseau horaire>) |
TruncQuarter | Arrondit une date au trimestre | TruncQuarter(<date>) |
TruncTime | Arrondit la partie heure à la seconde | TruncTim(e<date>, <nombre de secondes>) |
TruncWeek | Arrondit une date à la semaine | TruncWeek(<date>) |
TruncYear | Arrondit une date + heure au premier janvier de l'année | TruncYear(<date>) |
WeekDay | Renvoie le numéro du jour dans la semaine de la date (0=lundi, 6=dimanche). | WeekDay(<date>) |
Year | Renvoie le nombre représentant l'année de la date | Year(<date>) |
YearAnd Month | Renvoie le nombre représentant l'année et le mois de la date | YearAndMonth(<date>) |
YearsAgo | Renvoie le nombre d’années entre une date donnée et la date actuelle | YearsAgo(<date>) |
YearsDiff | Renvoie le nombre d'années entre deux dates | YearsDiff(<date de fin>, <date de début>) |
YearsOld | Renvoie l'ancienneté en années d'une date | YearsOld(<date>) |
Géomarketing
Les fonctions de géomarketing sont utilisées pour manipuler des valeurs géographiques.
Nom | Description | Syntaxe |
Distance | Renvoie la distance entre deux points donnés par leur longitude et leur latitude, exprimées en degrés. | Distance(<Longitude A>, <Latitude A>, <Longitude B>, <Latitude B>) |
Numérique
Les fonctions numériques sont utilisées pour convertir du texte en nombres.
Nom | Description | Syntaxe |
Abs | Renvoie la valeur absolue d'un nombre | Abs(<nombre>) |
Ceil | Renvoie le plus petit entier supérieur ou égal à un nombre | Ceil(<nombre>) |
Floor | Renvoie le plus grand entier supérieur ou égal à un nombre | Floor(<nombre>) |
Greatest | Renvoie le plus grand de deux nombres | Greatest(<nombre 1>, <nombre 2>) |
Least | Renvoie le plus petit de deux nombres | Least(<nombre 1>, <nombre 2>) |
Mod | Renvoie le reste de la division entiers de n1 par n2 | Mod(<nombre 1>, <nombre 2>) |
Percent | Renvoie la proportion en pourcentage entre deux nombres | Percent(<nombre 1>, <nombre 2>) |
Random | Renvoie une valeur aléatoire | Random() |
Round | Arrondit un nombre à n décimales près | Round(<nombre>, <nombre de décimales>) |
Sign | Renvoie le signe du nombre | Sign(<nombre>) |
ToDouble | Convertit un entier en réel | ToDouble(<nombre>) |
ToInt64 | Convertit un réel en entier 64 bits | ToInt64(<nombre>) |
ToInteger | Convertit un réel en entier | ToInteger(<nombre>) |
Trunc | Tronque n1 à n2 décimales | Trunc(<n1>, <n2>) |
Autres
Ce tableau contient les autres fonctions disponibles.
Nom | Description | Syntaxe |
AESEncrypt | Chiffrer la chaîne fournie dans l’argument | AESEncrypt(<value>) |
Case | Renvoie la valeur 1 si la condition est vérifiée. Sinon, renvoie la valeur 2. | Case(When(<condition>, <valeur 1>), Else(<valeur 2>)) |
ClearBit | Efface le Flag dans la valeur | ClearBit(<identifiant>, <flag>) |
Coalesce | Renvoie la valeur 2 si la valeur 1 est nulle ou vide (null), sinon renvoie la valeur 1 | Coalesce(<valeur 1>, <valeur 2>) |
Decode | Renvoie la valeur 3 si la valeur 1 = la valeur 2. Sinon, renvoie la valeur 4. | Decode(<valeur 1>, <valeur 2>, <valeur 3>, <valeur 4>) |
Else | Renvoie la valeur 1 (ne peut être utilisée qu'en paramètre de la fonction Case) | Else(<valeur 1>, <valeur 2>) |
GetEmailDomain | Extrait le domaine d'une adresse e-mail | GetEmailDomain(<valeur>) |
GetMirrorURL | Récupère l'URL du serveur de page miroir | GetMirrorURL(<valeur>) |
Iif | Renvoie la valeur 1 si l’expression est vraie. Sinon, renvoie la valeur 2. | Iif(<condition>, <valeur 1>, <valeur 2>) |
IsBitSet | Indique si le Flag est présent dans la valeur | IsBitSet(<identifiant>, <flag>) |
IsEmptyString | Renvoie la valeur 2 si la chaîne 1 est vide, sinon renvoie la valeur 3 | IsEmptyString(<valeur 1>, <valeur 2>, <valeur 3>) |
NewUUID | Renvoie un ID unique | NewUUID() |
NoNull | Renvoie la chaîne vide si l'argument n'a pas de valeur (null) | NoNull(<valeur>) |
RowId | Renvoie le numéro de la ligne | RowId |
SetBit | Force le Flag dans la valeur | SetBit(<identifiant>, <flag>) |
ToBoolean | Convertit un nombre en booléen | ToBoolean(<nombre>) |
When | Renvoie la valeur 1 si l’expression est vraie. Sinon, renvoie la valeur 2 (ne peut être utilisée qu’en paramètre de la fonction Case). | When(<condition>, <valeur 1>) |
Chaîne
Les fonctions de chaîne sont utilisées pour manipuler un ensemble de chaînes.
Nom | Description | Syntaxe |
AllNonNull2 | Indique si tous les paramètres sont non nuls et non vides | AllNonNull2(<chaîne>, <chaîne>) |
AllNonNull3 | Indique si tous les paramètres sont non nuls et non vides | AllNonNull3(<chaîne>, <chaîne>, <chaîne>) |
Ascii | Renvoie la valeur ascii du premier caractère de la chaîne. | Ascii(<chaîne>) |
Char | Renvoie le caractère de code ascii n | Char(<nombre>) |
Charindex | Retourne la position de la chaîne 2 dans la chaîne 1. | Charindex(<chaîne>, <chaîne>) |
dataLength | Renvoie la taille de la chaîne en octets | dataLength(<string>) |
GetLine | Renvoie la nième (de 1 à n) ligne de la chaîne | GetLine(<chaîne>) |
IfEquals | Renvoie le troisième paramètre si les deux premiers paramètres sont égaux. Sinon, renvoie le dernier paramètre. | IfEquals(<chaîne>, <chaîne>, <chaîne>, <chaîne>) |
IsMemoNull | Indique si le memo passé en paramètre est nul | IsMemoNull(<memo>) |
JuxtWords | Concatène les chaînes passées en paramètres. Ajoute des espaces entre les chaînes si nécessaire. | JuxtWords(<chaîne>, <chaîne>) |
JuxtWords3 | Concatène les chaînes passées en paramètres. Ajoute des espaces entre les chaînes si nécessaire. | JuxtWords3(<string>, <string>, <string>) |
Left | Renvoie les n premiers caractères de la chaîne | Left(<chaîne>, <nombre>) |
Length | Renvoie la longueur de la chaîne | Length(<chaîne>) |
Line | Extraire la ligne n de la chaîne | Line(<string>,<number>) |
Lower | Renvoie la chaîne en minuscules | Lower(<chaîne>) |
LPad | Renvoie la chaîne complétée à gauche | LPad (<String>, <Number>, <Char>) |
Ltrim | Ote les espaces à gauche de la chaîne | Ltrim(<chaîne>) |
Md5Digest | Renvoie une représentation hexadécimale de la clé MD5 d'une chaîne | Md5Digest(<chaîne>) |
MemoContains | Indique si le mémo contient la chaîne passée en paramètre | MemoContains(<memo>, <chaîne>) |
NodeValue | Extrait la valeur d’un champ XML de son XPath et des données de champ | NodeValue (<String>, <String>) |
Replace | Remplace toutes les occurrences d’une valeur de chaîne spécifiée par une autre valeur de chaîne. | Replace(<String>,<String>,<String>) |
Right | Renvoie les n derniers caractères de la chaîne | Right(<chaîne>) |
RPad | Renvoie la chaîne complétée à droite | RPad(<chaîne>, <nombre>, <caractère>) |
Rtrim | Ote les espaces à droite de la chaîne | Rtrim(<chaîne>) |
Sha256Digest | Représentation hexadécimale de la clé SHA256 d’une chaîne. | Sha256Digest (<String>) |
Sha512Digest | Représentation hexadécimale de la clé SHA512 d’une chaîne. | Sha512Digest (<String>) |
Smart | Renvoie la chaîne avec la première lettre de chaque mot en majuscule | Smart(<chaîne>) |
Substring | Extrait la sous-chaîne débutant au caractère n1 de la chaîne et de longueur n2 | Substring(<chaîne>, <départ>, <longueur>) |
ToString | Convertit le nombre en chaîne | ToString(<nombre>, <nombre>) |
Upper | Renvoie la chaîne en majuscules | Upper(<chaîne>) |
VirtualLink | Renvoie la clé étrangère d'un lien passée en premier paramètre, si les deux autres paramètres sont égaux | VirtualLink(<nombre>, <nombre>, <nombre>) |
VirtualLinkStr | Renvoie la clé étrangère (texte) d'un lien passée en premier paramètre, si les deux autres paramètres sont égaux | VirtualLinkStr(<chaîne>, <nombre>, <nombre>) |
Fenêtre
Nom | Description | Syntaxe |
_Over__ | Exécutez l’appel de fonction SQL saisi en tant que 1er paramètre, sur Partition ou Trier selon les champs saisis en tant que 2e paramètre. | _Over_ (<Value>, <Value>) |
Desc | Applique un tri descendant | Desc(<valeur 1>) |
OrderBy | Trie le résultat au sein de la partition | OrderBy(<valeur 1>) |
PartitionBy | Partitionne le résultat d'une requête sur une table | PartitionBy(<valeur 1>) |
RowNum | Génère un numéro de ligne en fonction de la partition de la table et d'un ordre de tri. | RowNum(PartitionBy(<valeur 1>), OrderBy(<valeur 1>)) |