Tous les opérateurs sont transformés en leurs fonctions correspondantes à l'étape d'analyse des requêtes en fonction de leur priorité et de leur associativité.
Les groupes d'opérateurs sont listés par ordre de priorité (plus il est élevé dans la liste, plus tôt l'opérateur est connecté à ses arguments).
## Des Opérateurs D'Accès {#access-operators}
`a[N]`– Access to an element of an array. The `arrayElement(a, N)` fonction.
`a.N`– Access to a tuple element. The `tupleElement(a, N)` fonction.
## Opérateur De Négation Numérique {#numeric-negation-operator}
`-a`– The `negate (a)` fonction.
## Opérateurs de Multiplication et de Division {#multiplication-and-division-operators}
`a * b`– The `multiply (a, b)` fonction.
`a / b`– The `divide(a, b)` fonction.
`a % b`– The `modulo(a, b)` fonction.
## Opérateurs d'Addition et de soustraction {#addition-and-subtraction-operators}
`a + b`– The `plus(a, b)` fonction.
`a - b`– The `minus(a, b)` fonction.
## Opérateurs De Comparaison {#comparison-operators}
`a = b`– The `equals(a, b)` fonction.
`a == b`– The `equals(a, b)` fonction.
`a != b`– The `notEquals(a, b)` fonction.
`a <> b`– The `notEquals(a, b)` fonction.
`a <= b`– The `lessOrEquals(a, b)` fonction.
`a >= b`– The `greaterOrEquals(a, b)` fonction.
`a < b`– The `less(a, b)` fonction.
`a > b`– The `greater(a, b)` fonction.
`a LIKE s`– The `like(a, b)` fonction.
`a NOT LIKE s`– The `notLike(a, b)` fonction.
`a BETWEEN b AND c`– The same as `a >= b AND a <= c`.
`a NOT BETWEEN b AND c`– The same as `a < b OR a > c`.
Le `date` paramètre spécifie la date ou l'heure à traiter. Soit [Date](../sql_reference/data_types/date.md) ou [DateTime](../sql_reference/data_types/datetime.md) le type est pris en charge.
Crée un [Intervalle](../sql_reference/data_types/special_data_types/interval.md)- valeur de type qui doit être utilisée dans les opérations arithmétiques avec [Date](../sql_reference/data_types/date.md) et [DateTime](../sql_reference/data_types/datetime.md)-type de valeurs.
Les intervalles avec différents types ne peuvent pas être combinés. Vous ne pouvez pas utiliser des expressions comme `INTERVAL 4 DAY 1 HOUR`. Exprimer des intervalles en unités plus petites ou égales à la plus petite unité de l'intervalle, par exemple `INTERVAL 25 HOUR`. Vous pouvez utiliser des opérations conséquentes comme dans l'exemple ci-dessous.
Exemple:
``` sql
SELECT now() AS current_date_time, current_date_time + INTERVAL 4 DAY + INTERVAL 3 HOUR
L'opérateur conditionnel calcule les valeurs de b et c, puis vérifie si la condition a est remplie, puis renvoie la valeur correspondante. Si `b` ou `C` est un [arrayJoin()](../sql_reference/functions/array_join.md#functions_arrayjoin) fonction, chaque ligne sera répliquée indépendamment de la “a” condition.
Si `x` est spécifié, alors `transform(x, [a, ...], [b, ...], c)` function is used. Otherwise –`multiIf(a, b, ..., c)`.
Si il n'y a pas de `ELSE c` dans l'expression, la valeur par défaut est `NULL`.
Le `transform` la fonction ne fonctionne pas avec `NULL`.
## Opérateur De Concaténation {#concatenation-operator}
`s1 || s2`– The `concat(s1, s2) function.`
## Opérateur De Création Lambda {#lambda-creation-operator}
`x -> expr`– The `lambda(x, expr) function.`
Les opérateurs suivants n'ont pas de priorité, puisqu'ils sont des parenthèses:
## Opérateur De Création De Tableau {#array-creation-operator}
`[x1, ...]`– The `array(x1, ...) function.`
## Opérateur De Création De Tuple {#tuple-creation-operator}
`(x1, x2, ...)`– The `tuple(x2, x2, ...) function.`
## Associativité {#associativity}
Tous les opérateurs binaires ont associativité gauche. Exemple, `1 + 2 + 3` est transformé à `plus(plus(1, 2), 3)`.
Parfois, cela ne fonctionne pas de la façon que vous attendez. Exemple, `SELECT 4 > 2 > 3` résultat sera 0.
Pour l'efficacité, le `and` et `or` les fonctions acceptent n'importe quel nombre d'arguments. Les chaînes de `AND` et `OR` les opérateurs sont transformés en un seul appel de ces fonctions.