# Fonctions d'expression

Utilisez des fonctions pour transformer des valeurs de ligne, gérer les données manquantes ou récupérer des valeurs associées lors de la création d'expressions. Pour plus de détails, voir [Création d'expressions](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm).

Les fonctions ci-dessous décrivent les expressions de tâches de déplacement dans les tâches de dépôt temporaire gérées par SaaS, de dépôt temporaire dans un lac et de réplication. Utilisez la signature de fonction affichée dans votre éditeur. Les crochets figurant dans les signatures indiquent des arguments facultatifs ; ne saisissez pas les crochets.

Pour les fonctions de transformation de flux et de stockage CDC, consultez [Fonctions de transformation](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/transformation-functions.htm). Pour les expressions de stockage, de transformation et de datamart exécutées sur une plateforme de données cloud, utilisez la syntaxe de fonction de cette plateforme.

## Fonctions de chaîne

Les fonctions de préfixe et de suffixe agissent sur le début ou la fin d'une chaîne de caractères. Le remplacement de caractères s'applique aux caractères individuels plutôt que de correspondre à un préfixe ou à un suffixe entier.

Arguments des fonctions de chaîne de caractères, comportement et exemples

| Fonction | Comportement et arguments | Exemple et résultat |
| --- | --- | --- |
| `$CONCAT(X, Y)` | Joint les deux chaînes `X` et `Y`, dans cet ordre. Renvoie NULL si l'un ou l'autre argument est NULL. Imbriquez les appels pour joindre plus de deux chaînes. | `$CONCAT('My', 'Picture')` renvoie `'MyPicture'`. `$CONCAT('My', NULL)` renvoie NULL. |
| `$INSTR(string, substring)` | Renvoie la position basée sur un de la première occurrence de `substring` dans `string`. Renvoie 0 si la sous-chaîne est introuvable. | `$INSTR('mystring', 'ing')` renvoie `6`. `$INSTR('mystring', 'xyz')` renvoie `0`. |
| `$LENGTH(string)` | Renvoie le nombre de caractères dans `string` et non sa taille en octets. | `$LENGTH('mystring')` renvoie `8`. |
| `$LOWER(string)` | Renvoie une copie de `string` avec les lettres ASCII converties en minuscules. | `$LOWER('ABC')` renvoie `'abc'`. |
| `$LTRIM(string[, characters])` | Supprime des caractères du début de `string`. L'argument `characters` en option est un ensemble de caractères à supprimer et non un préfixe. En cas d'omission, supprime les espaces. | `$LTRIM('  orders')` renvoie `'orders'`. `$LTRIM('@@orders', '@')` renvoie `'orders'`. |
| `$REMOVE_PREFIX(string, prefix)` | Renvoie une copie de `string` avec le `prefix` de début spécifié supprimé. | `$REMOVE_PREFIX('mystring', 'my')` renvoie `'string'`. |
| `$REMOVE_SUFFIX(string, suffix)` | Renvoie une copie de `string` avec le `suffix` de fin spécifié supprimé. | `$REMOVE_SUFFIX('mystring', 'ing')` renvoie `'mystr'`. |
| `$REPLACE(string, pattern, replacement)` | Remplace chaque occurrence de `pattern` dans `string` par `replacement`. Les trois arguments sont requis. Utilisez une chaîne de caractères de remplacement vide pour supprimer le texte correspondant. | `$REPLACE('a-b-c', '-', '_')` renvoie `'a_b_c'`. `$REPLACE('a-b', '-', '')` renvoie `'ab'`. |
| `$REPLACE_CHARS(string, chars, replacement)` | Remplace chaque caractère répertorié dans `chars` par le caractère à la même position dans `replacement`. Les caractères non répertoriés restent inchangés. S'il manque une position de remplacement, le premier caractère de remplacement est utilisé. | `$REPLACE_CHARS('mystring', 's', 'z')` renvoie `'myztring'`. `$REPLACE_CHARS('abcde', 'abcd', '123')` renvoie `'1231e'`. |
| `$REPLACE_PREFIX(string, prefix, replacement)` | Remplace le `prefix` de début de `string` par `replacement`. | `$REPLACE_PREFIX('mystring', 'my', 'new')` renvoie `'newstring'`. |
| `$REPLACE_SUFFIX(string, suffix, replacement)` | Remplace le `suffix` de fin de `string` par `replacement` au lieu de remplacer chaque occurrence. | `$REPLACE_SUFFIX('mystring', 'ing', 'new')` renvoie `'mystrnew'`. |
| `$RTRIM(string[, characters])` | Supprime des caractères de la fin de `string`. L'argument `characters` en option est un ensemble de caractères à supprimer et non un suffixe. En cas d'omission, supprime les espaces. | `$RTRIM('orders  ')` renvoie `'orders'`. `$RTRIM('orders@@', '@')` renvoie `'orders'`. |
| `$SUBSTR(string, start[, length])` | Extrait le texte de `string`, en commençant à la position basée sur un `start`. `length` spécifie le nombre de caractères. En cas d'omission, renvoie les caractères restants. | `$SUBSTR('abcdef', 2, 3)` renvoie `'bcd'`. |
| `$TRIM(string[, characters])` | Supprime les caractères des deux extrémités de `string`. L'argument `characters` en option est un ensemble de caractères à supprimer et non une sous-chaîne. En cas d'omission, supprime les espaces. | `$TRIM('  orders  ')` renvoie `'orders'`. `$TRIM('@#orders#@', '@#')` renvoie `'orders'`. |
| `$UNICODE(string)` | Renvoie le point de code Unicode numérique du premier caractère dans `string`. L'argument doit être une chaîne de caractères. | `$UNICODE('ABC')` renvoie `65`. |
| `$UPPER(string)` | Renvoie une copie de `string` avec les lettres ASCII converties en majuscules. | `$UPPER('abc')` renvoie `'ABC'`. |

## Fonctions numériques

Utilisez ces fonctions pour calculer des valeurs numériques pour la ligne active. `$MAX` et `$MIN` comparent les arguments au sein de la ligne et non les valeurs de toutes les lignes.

Arguments des fonctions numériques, comportement et exemples

| Fonction | Comportement et arguments | Exemple et résultat |
| --- | --- | --- |
| `$ABS(X)` | Renvoie la valeur absolue de l'argument numérique `X`. | `$ABS(-20)` renvoie `20`. |
| `$MAX(arg1, arg2, ...)` | Renvoie la plus grande valeur des arguments numériques fournis. Fournissez au moins deux arguments. | `$MAX(10, 4, 20, 9)` renvoie `20`. |
| `$MIN(arg1, arg2, ...)` | Renvoie la plus petite valeur des arguments numériques fournis. Fournissez au moins deux arguments. | `$MIN(10, 4, 20, 9)` renvoie `4`. |
| `$RANDOM()` | Renvoie un entier signé pseudo-aléatoire. Ne prend aucun argument. | `$RANDOM()` renvoie un entier qui peut être négatif, égal à zéro ou positif. Sa valeur varie d'un appel à un autre. |
| `$ROUND(value[, digits])` | Arrondit `value` à `digits` décimales et renvoie une valeur à virgule flottante. Si `digits` est omis, arrondit à zéro décimale. | `$ROUND(3.141592, 3)` renvoie `3.142`. |

## Fonctions LOB

Ces fonctions sont compatibles avec des objets binaires volumineux (BLOB). L'argument de taille `N` spécifie des octets et non des caractères.

Fonctions de valeur binaire

| Fonction | Comportement et arguments | Exemple et résultat |
| --- | --- | --- |
| `$HEX(blob)` | Renvoie le texte hexadécimal en majuscules représentant les octets de `blob`. La saisie numérique commence par être convertie en texte ; le résultat n'est pas la représentation machine du nombre. | `$HEX(X'4142')` renvoie `'4142'`. |
| `$RANDOM_BLOB(N)` | Renvoie `N` octets pseudo-aléatoires. Si `N` est inférieur à 1, renvoie un octet. N'utilisez pas cette fonction comme garantie de caractère aléatoire cryptographique. | `$RANDOM_BLOB(4)` renvoie un BLOB de quatre octets. Sa valeur varie d'un appel à un autre. |
| `$ZERO_BLOB(N)` | Renvoie un BLOB contenant `N` octets zéro. | `$HEX($ZERO_BLOB(3))` renvoie `'000000'`. |

## Fonctions de contrôle de valeur nulle

Arguments des fonctions de contrôle de valeur nulle, comportement et exemples

| Fonction | Comportement et arguments | Exemple et résultat |
| --- | --- | --- |
| `$COALESCE(X, Y, ...)` | Renvoie le premier argument non-NULL, dans l'ordre des arguments. Fournissez au moins deux arguments. Si tous les arguments sont NULL, le résultat est NULL. Une chaîne de caractères vide n'est pas NULL. | `$COALESCE(NULL, 'Unknown')` renvoie `'Unknown'`. `$COALESCE('', 'Unknown')` renvoie une chaîne de caractères vide. |
| `$IFNULL(X, Y)` | Renvoie `X` si elle n'est pas NULL ; sinon, renvoie `Y`. Renvoie NULL si les deux arguments sont NULL. Fournissez exactement deux arguments. | `$IFNULL(NULL, 'Unknown')` renvoie `'Unknown'`. `$IFNULL('Known', 'Unknown')` renvoie `'Known'`. |
| `$NULLIF(X, Y)` | Renvoie NULL si `X` et `Y` sont égaux ; sinon, renvoie `X`. Fournissez exactement deux arguments. | `$NULLIF('Unknown', 'Unknown')` renvoie NULL. `$NULLIF('Known', 'Unknown')` renvoie `'Known'`. |

## Fonctions de date et heure

Fournissez une chaîne de caractères de date, d'heure ou de datetime telle que `'2026-10-08'`, `'12:34:56'` ou `'2026-10-08 12:34:56'`. Conservez les constantes de date entre guillemets afin que les tirets ne soient pas interprétés comme une soustraction.

Calcul et formatage des dates

| Fonction | Comportement et arguments | Exemple et résultat |
| --- | --- | --- |
| `$DATE(date_string)` | Renvoie la date de `date_string` sous forme de texte au format `YYYY-MM-DD`. | `$DATE('2026-10-08')` renvoie `'2026-10-08'`. |
| `$DATETIME(datetime_string)` | Renvoie la date et l'heure de `datetime_string` sous forme de texte au format `YYYY-MM-DD HH:MM:SS`. | `$DATETIME('2026-10-08 12:34:56')` renvoie `'2026-10-08 12:34:56'`. |
| `$JULIANDAY(datetime_string)` | Renvoie les jours fractionnaires depuis midi à Greenwich le 24 novembre 4714 av. J.-C. Soustrayez deux valeurs de jour julien pour calculer un nombre de jours écoulés. | `$JULIANDAY('2000-01-01 12:00:00')` renvoie `2451545.0`. `$JULIANDAY('2026-10-09') - $JULIANDAY('2026-10-08')` renvoie `1.0`. |
| `$STRFTIME(format, datetime_string)` | Renvoie le texte formaté à l'aide de `format`. Le format précède l'entrée de date ou de datetime. | `$STRFTIME('%Y-%m', '2026-10-08')` renvoie `'2026-10'`. |
| `$TIME(time_string)` | Renvoie l'heure de `time_string` sous forme de texte au format `HH:MM:SS`. | `$TIME('12:34:56')` renvoie `'12:34:56'`. |

### Substitutions de format

Combinez les substitutions suivantes avec des séparateurs littéraux dans `$STRFTIME`. Par exemple, `'%Y-%m-%d %H:%M:%S'` formate à la fois la date et l'heure. Une substitution non supportée renvoie NULL.

Substitutions de format de date et d'heure

| Substitution | Signification |
| --- | --- |
| `%d` | Jour du mois, 01-31. |
| `%H` | Heure, 00-24. |
| `%f` | Secondes avec partie fractionnaire, SS.SSS. |
| `%j` | Jour de l'année, 001-366. |
| `%J` | Numéro de jour julien. |
| `%m` | Mois, 01-12. |
| `%M` | Minutes, 00-59. |
| `%s` | Secondes depuis le 1er janvier 1970 à 00:00:00 UTC. |
| `%S` | Secondes, 00-59. |
| `%w` | Jour de la semaine, 0-6 ; dimanche est 0. |
| `%W` | Semaine de l'année, 00-53 ; les semaines commencent le lundi. |
| `%Y` | Année, 0000-9999. |
| `%%` | Signe de pourcentage littéral. |

## Fonctions d'enrichissement de données

Utilisez une recherche pour ajouter une valeur associée telle qu'un nom de service (department) à partir d'une table dans le point de terminaison source ou cible.

Arguments des fonctions d'enrichissement des données, comportement et exemples

| Fonction | Comportement et arguments | Exemple et résultat |
| --- | --- | --- |
| `$SOURCE_LOOKUP(time_to_live, schema, table, expression, condition, condition_params)` | Récupère la valeur de `expression` depuis le `table` du point de terminaison source, dans `schema`, pour l'enregistrement qui correspond à `condition`. Les paramètres de condition fournissent des valeurs pour ses espaces réservés dans l'ordre. | `$SOURCE_LOOKUP(60, 'HR', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=:1', $DEPARTMENT_ID)` récupère le nom de service (department) correspondant auprès de la source. |
| `$TARGET_LOOKUP(time_to_live, schema, table, expression, condition, condition_params)` | Récupère la valeur de `expression` depuis le `table` du point de terminaison cible, dans `schema`, pour l'enregistrement qui correspond à `condition`. Les paramètres de condition fournissent des valeurs pour ses espaces réservés dans l'ordre. | `$TARGET_LOOKUP(60, 'dbo', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=?', $DEPARTMENT_ID)` récupère le nom de service (department) correspondant auprès de la cible. |

`condition_params` représente une liste d'arguments séparés par des virgules et non un seul argument de tableau. Les deux fonctions utilisent les paramètres suivants :

Paramètres de recherche et leurs relations

| Paramètre | Signification |
| --- | --- |
| `time_to_live` | Durée de vie du cache requise, sans valeur par défaut. Indiquez la durée de vie du cache en secondes, `'NO_CACHING'` pour désactiver la mise en cache, ou `'NO_EXPIRATION'` pour conserver les résultats mis en cache sans expiration.<br><br>Les durées de vie courtes actualisent les données qui changent souvent. Les durées de vie plus longues réduisent les requêtes de point de terminaison, mais peuvent renvoyer des valeurs mises en cache après la modification des données de recherche. N'utilisez aucune expiration uniquement pour les données qui ne changent pas. |
| `schema` | Schéma contenant la table de recherche, fournie sous forme de texte. |
| `table` | Table à interroger dans ce schéma, fournie sous forme de texte. |
| `expression` | Expression SQL sélectionnant la valeur d'une colonne telle que `'DEPARTMENT_NAME'` ou `'PRICE * 1.2'`. Utilisez le dialecte SQL du point de terminaison en cours d'accès et non la syntaxe de fonction de l'expression externe. |
| `condition` | Condition SQL identifiant l'enregistrement de recherche. Utilisez le dialecte et la syntaxe d'espace réservé du point de terminaison en cours d'accès : par exemple, `:1` et `:2` pour Oracle, ou `?` pour Microsoft SQL Server. |
| `condition_params` | Valeurs liées aux espaces réservés de condition, dans l'ordre. Les paramètres de colonne tels que `$COMPANY_ID` et `$DEPARTMENT_ID` fournissent les valeurs de la ligne en cours. |

Indexez les champs de recherche pour réduire le coût des requêtes. Sélectionnez une condition qui identifie l'enregistrement souhaité et définissez le type de données de la colonne ajoutée de sorte qu'il corresponde à la valeur sélectionnée.

Note InformationsLe test des appels auprès de `$SOURCE_LOOKUP` et de `$TARGET_LOOKUP` n'est pas supporté. Consultez [Test d'expressions](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm#Testing).

### Exemple de recherche de source

Pour une source Oracle, l'expression suivante récupère `DEPARTMENT_NAME` auprès de `HR.DEPARTMENTS` et met en cache le résultat pendant 60 secondes :

```
$SOURCE_LOOKUP(60, 'HR', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=:1', $DEPARTMENT_ID)
```

Si la ligne active contient `DEPARTMENT_ID` 10 et que l'enregistrement de recherche correspondant contient `'Sales'`, le résultat est `'Sales'`.

Pour une source Microsoft SQL Server, utilisez sa syntaxe d'espace réservé de condition. Cet exemple lie les valeurs company et department dans cet ordre :

```
$SOURCE_LOOKUP(60, 'dbo', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'COMPANY_ID=? AND DEPARTMENT_ID=?', $COMPANY_ID, $DEPARTMENT_ID)
```

### Exemple de recherche de cible

Pour une cible Microsoft SQL Server, interrogez la table cible via son dialecte SQL :

```
$TARGET_LOOKUP(60, 'dbo', 'DEPARTMENTS', 'DEPARTMENT_NAME', 'DEPARTMENT_ID=?', $DEPARTMENT_ID)
```

Si l'enregistrement de recherche de cible de department 10 contient `'Sales'`, le résultat d'une valeur d'entrée 10 est `'Sales'`.

## Fonctions d'opération

Arguments des fonctions d'opération, comportement et exemples

| Fonction | Comportement et arguments | Exemple et résultat |
| --- | --- | --- |
| `$OPERATION_INDICATOR(value_on_delete, value_on_update, value_on_insert)` | Renvoie l'indicateur que vous spécifiez pour chaque opération source. L'ordre des arguments est supprimer, mettre à jour, puis insérer. Utilisez une colonne dédiée pour stocker les indicateurs et fournissez des valeurs d'indicateur qui correspondent à son type de données. | `$OPERATION_INDICATOR('Deleted', 'Updated', 'Inserted')` renvoie `'Updated'` pour une mise à jour. |

Dans Qlik Replicate, cette fonction modifie également la gestion des suppressions : elle conserve l'enregistrement cible correspondant et le marque avec `value_on_delete`. Ce comportement de gestion des suppressions nécessite une confirmation pour Qlik Talend Cloud Data Integration.

## Fonctions logiques

Sélection de valeur conditionnelle

| Fonction | Comportement et arguments | Exemple et résultat |
| --- | --- | --- |
| `$IFF(boolean_expression, true_value, false_value)` | Renvoie `true_value` si `boolean_expression` est évalué sur true ; sinon, renvoie `false_value`. Commencez par fournir la condition, puis les deux valeurs de résultat. | `$IFF(10 > 5, 'High', 'Low')` renvoie `'High'`. `$IFF(3 > 5, 'High', 'Low')` renvoie `'Low'`. |

## Autres fonctions

Correspondance de modèles et types de valeur

| Fonction | Comportement et arguments | Exemple et résultat |
| --- | --- | --- |
| `$LIKE(pattern, string[, escape_character])` | Renvoie 1 en cas de correspondance ou 0 en l'absence de correspondance ; une entrée NULL produit NULL. `%` correspond à zéro ou plusieurs caractères ; `_` correspond à un. La correspondance ignore la casse des lettres ASCII par défaut. L'échappement en option est un caractère. Le modèle vient en premier, contrairement à l'opérateur `LIKE`. | `$LIKE('A%', 'Alice')` renvoie `1`. `$LIKE('10!%', '10%', '!')` renvoie `1`. |
| `$TYPEOF(expression)` | Renvoie la classe de stockage de la valeur : `'null'`, `'integer'`, `'real'`, `'text'` ou `'blob'`. Il ne s'agit pas du type de colonne de sortie configuré. | `$TYPEOF(12.5)` renvoie `'real'`. |

## Fonctions de hachage

Arguments des fonctions de hachage, comportement et exemples

| Fonction | Comportement et arguments | Exemple et résultat |
| --- | --- | --- |
| `$SHA256(string)` | Renvoie le hachage SHA-256 hexadécimal de la chaîne de caractères d'entrée. | `$SHA256('abc')` renvoie `ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad`. |

Un hachage n'est pas un chiffrement. Les valeurs d'entrée prévisibles peuvent continuer à être identifiées en comparant leurs hachages.