# Opérateurs d'expression

Utilisez des opérateurs pour calculer des valeurs, comparer des entrées et combiner des conditions lorsque [Création d'expressions](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm).

La sémantique suivante s'applique aux expressions de tâches de déplacement. Les expressions exécutées sur une plateforme de données cloud utilisent la sémantique de cette plateforme. Placez des espaces autour des opérateurs et mettez les constantes de texte et de date entre guillemets, par exemple `$HIRE_DATE < '2026-10-08'`.

## Opérateurs arithmétiques

Opérations arithmétiques sur des valeurs numériques

| Opérateur | Signification | Exemple et résultat |
| --- | --- | --- |
| `+` | Ajoute les deux opérandes. | `2 + 3` renvoie `5`. |
| `-` | Soustrait l'opérande de droite de celui de gauche. Un signe moins placé au début rend une valeur négative. | `5 - 2` renvoie `3`. |
| `*` | Multiplie les opérandes. | `3 * 4` renvoie `12`. |
| `/` | Divise l'opérande gauche par celui de droite. La division d'un entier tronque vers zéro. Un opérande réel préserve un résultat fractionnaire. Une division par zéro renvoie NULL. | `7 / 2` renvoie `3` ; `7.0 / 2` renvoie `3.5`. |
| `%` | Convertit les deux opérandes en entiers et renvoie le reste de la division. Il ne s'agit pas d'un calcul de pourcentage. | `7 % 3` renvoie `1`. |

## Opérateurs de comparaison

Les comparaisons renvoient 1 pour true et 0 pour false. Les comparaisons ordinaires avec NULL renvoient NULL ; utilisez `IS` ou `IS NOT` pour tester les valeurs manquantes.

Comparaison de deux valeurs

| Opérateur | Signification | Exemple et résultat |
| --- | --- | --- |
| `=` | Teste l'égalité. | `3 = 3` renvoie `1`. |
| `!=` | Teste l'inégalité. | `3 != 4` renvoie `1`. |
| `<>` | Opérateur d'inégalité alternatif. | `3 <> 3` renvoie `0`. |
| `<` | Teste si la valeur de gauche est inférieure. | `2 < 3` renvoie `1`. |
| `<=` | Tests si la valeur est inférieure ou égale à l'autre valeur. | `3 <= 3` renvoie `1`. |
| `>` | Teste si la valeur de gauche est supérieure. | `4 > 3` renvoie `1`. |
| `>=` | Tests si la valeur est supérieure ou égale à l'autre valeur. | `3 >= 3` renvoie `1`. |
| `IS` | Teste l'égalité sans renvoyer NULL. Deux valeurs NULL sont égales ; une valeur NULL et une valeur non-NULL ne le sont pas. | `NULL IS NULL` renvoie `1`. |
| `IS NOT` | Teste l'inégalité sans renvoyer NULL. | `NULL IS NOT 3` renvoie `1`. |

## Opérateurs logiques et conditionnels

Combinaison de conditions et sélection de valeurs

| Opérateur | Signification | Exemple et résultat |
| --- | --- | --- |
| `AND` | True lorsque les deux conditions sont définies sur true. Un opérande false rend le résultat false, même si l'autre opérande est NULL. | `(3 > 2) AND (4 < 3)` renvoie `0`. |
| `OR` | True si l'une ou l'autre condition est définie sur true. Un opérande true rend le résultat true, même si l'autre opérande est NULL. | `(3 > 2) OR (4 < 3)` renvoie `1`. |
| `IN` | Teste l'appartenance à une liste entre parenthèses. Si aucune valeur ne correspond et que la liste contient NULL, renvoie NULL. Une liste vide renvoie 0, y compris pour un opérande de gauche NULL. | `2 IN (1, 2, 3)` renvoie `1` ; `4 IN (1, NULL)` renvoie NULL. |
| `CASE` | Renvoie la première branche correspondante. Avec une valeur de base, la compare à chaque valeur WHEN. Sans valeur de base, teste chaque condition WHEN. Utilise ELSE si aucune branche ne correspond ou NULL si ELSE est absent. | `CASE WHEN 5 > 3 THEN 'High' ELSE 'Low' END` renvoie `'High'`. `CASE 2 WHEN 1 THEN 'One' WHEN 2 THEN 'Two' END` renvoie `'Two'`. |

## Opérateurs de chaîne de caractères et de modèle

Jointure de texte et de modèles correspondants

| Opérateur | Signification | Exemple et résultat |
| --- | --- | --- |
| `\|\|` | Concatène des valeurs de texte. Un opérande NULL produit NULL. | `'John' \|\| ' ' \|\| 'Smith'` renvoie `'John Smith'`. |
| `LIKE` | Compare la chaîne de caractères de gauche au modèle de droite. `%` correspond à zéro ou plusieurs caractères ; `_` correspond à un. Ignore la casse des lettres ASCII par défaut, mais pas les différences de casse des caractères non-ASCII. ESCAPE spécifie un seul caractère pour les caractères génériques littéraux. | `'Alice' LIKE 'A%'` renvoie `1`. `'10%' LIKE '10!%' ESCAPE '!'` renvoie `1`. |
| `GLOB` | Correspondance sensible à la casse utilisant des modèles de style Unix. `*` correspond à zéro ou plusieurs caractères, `?` correspond à un, et des crochets définissent un jeu de caractères. | `'file.csv' GLOB '*.csv'` renvoie `1` ; `'File.CSV' GLOB '*.csv'` renvoie `0`. |
| `MATCH` | Délègue à la fonction `match()` définie par l'application. Une implémentation utilisable est requise ; l'implémentation SQLite par défaut déclenche une erreur. | `'Quarterly sales' MATCH 'sales'` illustre la syntaxe. Le résultat dépend de l'implémentation de l'application. |
| `REGEXP` | Délègue à la fonction `regexp()` définie par l'application. SQLite ne fournit pas cette fonction par défaut. | `'ABC123' REGEXP '^[A-Z]+[0-9]+$'` illustre la syntaxe. Sans implémentation, l'évaluation échoue. |

## Opérateurs bit à bit (bitwise)

Ces opérateurs binaires agissent sur les bits d'entiers et non sur des conditions logiques. `|` signifie OR bit à bit, même si l'éditeur le répertorie également dans une catégorie logique.

Opérations de bits d'entiers

| Opérateur | Signification | Exemple et résultat |
| --- | --- | --- |
| `<<` | Déplace l'entier de gauche vers la gauche du nombre de bits de l'opérande de droite. | `3 << 1` renvoie `6`. |
| `>>` | Déplace l'entier de gauche vers la droite du nombre de bits de l'opérande de droite. | `8 >> 1` renvoie `4`. |
| `&` | AND bit à bit : définit un bit de résultat uniquement lorsque les deux opérandes ont ce bit défini. | `6 & 3` renvoie `2`. |
| `\|` | OR bit à bit : définit un bit de résultat lorsque l'un ou l'autre des opérandes a ce bit défini. | `6 \| 3` renvoie `7`. |

## Ordre d'évaluation et valeurs manquantes

Pour les opérateurs binaires ci-dessus, la priorité, de la plus élevée à la plus basse, est : concaténation ; multiplication, division et reste ; addition et soustraction ; opérations bit à bit ; comparaisons ordonnées ; tests d'égalité et de modèles ; AND ; puis OR. Les opérateurs de même niveau évaluent de gauche à droite. Les parenthèses remplacent cet ordre : `(2 + 3) * 4` renvoie `20`, tandis que `2 + 3 * 4` renvoie `14`.

La plupart des opérateurs renvoient NULL lorsqu'un opérande est NULL. Les exceptions décrites ci-dessus comprennent `IS`, `IS NOT` et des cas spécifiques `AND`, `OR` et `IN`. Utilisez `$COALESCE` lorsqu'une valeur manquante devrait avoir un remplacement. Consultez [Fonctions d'expression](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Expression-functions.htm).