Contrôle la ramification conditionnelle. Contrairement à la plupart des systèmes, ClickHouse évalue toujours les deux expressions `then` et `else`.
**Syntaxe**
``` sql
SELECT if(cond, then, else)
```
Si la condition `cond` renvoie une valeur non nulle, retourne le résultat de l'expression `then` et le résultat de l'expression `else`, si présent, est ignoré. Si l' `cond` est égal à zéro ou `NULL` alors le résultat de la `then` l'expression est ignorée et le résultat de `else` expression, si elle est présente, est renvoyée.
**Paramètre**
-`cond`– The condition for evaluation that can be zero or not. The type is UInt8, Nullable(UInt8) or NULL.
-`then` - L'expression à renvoyer si la condition est remplie.
-`else` - L'expression à renvoyer si la condition n'est pas remplie.
**Valeurs renvoyées**
La fonction s'exécute `then` et `else` expressions et retourne son résultat, selon que la condition `cond` fini par être zéro ou pas.
**Exemple**
Requête:
``` sql
SELECT if(1, plus(2, 2), plus(2, 6))
```
Résultat:
``` text
┌─plus(2, 2)─┐
│ 4 │
└────────────┘
```
Requête:
``` sql
SELECT if(0, plus(2, 2), plus(2, 6))
```
Résultat:
``` text
┌─plus(2, 6)─┐
│ 8 │
└────────────┘
```
-`then` et `else` doit avoir le type commun le plus bas.
**Exemple:**
Prendre cette `LEFT_RIGHT` table:
``` sql
SELECT *
FROM LEFT_RIGHT
┌─left─┬─right─┐
│ ᴺᵁᴸᴸ │ 4 │
│ 1 │ 3 │
│ 2 │ 2 │
│ 3 │ 1 │
│ 4 │ ᴺᵁᴸᴸ │
└──────┴───────┘
```
La requête suivante compare `left` et `right` valeur: