Passer au contenu principal
Les fonctions ci-dessous effectuent des opérations logiques sur des arguments de types numériques quelconques. Elles renvoient 0 ou 1 sous forme de UInt8 ou, dans certains cas, NULL. Un zéro passé en argument est considéré comme false, tandis que les valeurs non nulles sont considérées comme true.

and

Introduit dans : v1.1.0 Calcule la conjonction logique d’au moins deux valeurs. Le paramètre short_circuit_function_evaluation contrôle l’utilisation de l’évaluation en court-circuit. S’il est activé, val_i n’est évalué que si (val_1 AND val_2 AND ... AND val_{i-1}) est true. Par exemple, avec l’évaluation en court-circuit, aucune exception de division par zéro n’est levée lors de l’exécution de la requête SELECT and(number = 2, intDiv(1, number)) FROM numbers(5). Un argument égal à zéro est considéré comme false, tandis que les valeurs non nulles sont considérées comme true. Syntaxe
and(val1, val2[, ...])
Arguments Valeur renvoyée Renvoie :
  • 0, si au moins un argument vaut false
  • NULL, si aucun argument ne vaut false et qu’au moins un argument est NULL
  • 1, sinon Nullable(UInt8)
Exemples Utilisation de base
Query
SELECT and(0, 1, -2);
Response
0
Avec NULL
Query
SELECT and(NULL, 1, 10, -2);
Response
ᴺᵁᴸᴸ

not

Introduit dans : v1.1.0 Calcule la négation logique d’une valeur. Un argument égal à zéro est considéré comme false ; les valeurs non nulles sont considérées comme true. Syntaxe
not(val)
Arguments Valeur renvoyée Renvoie :
  • 1, si val est interprété comme false
  • 0, si val est interprété comme true
  • NULL, si val est NULL. Nullable(UInt8)
Exemples Utilisation de base
Query
SELECT NOT(1);
Response
0

or

Introduit dans : v1.1.0 Calcule la disjonction logique d’au moins deux valeurs. Le paramètre short_circuit_function_evaluation contrôle l’utilisation de l’évaluation en court-circuit. S’il est activé, val_i n’est évalué que si ((NOT val_1) AND (NOT val_2) AND ... AND (NOT val_{i-1})) vaut true. Par exemple, avec l’évaluation en court-circuit, aucune exception de division par zéro n’est levée lors de l’exécution de la requête SELECT or(number = 0, intDiv(1, number) != 0) FROM numbers(5). La valeur zéro passée en argument est considérée comme false, les valeurs différentes de zéro sont considérées comme true. Syntaxe
or(val1, val2[, ...])
Arguments Valeur renvoyée Renvoie :
  • 1, si au moins un argument vaut true
  • 0, si tous les arguments valent false
  • NULL, si tous les arguments valent false et qu’au moins l’un d’eux est NULL Nullable(UInt8)
Exemples Utilisation de base
Query
SELECT or(1, 0, 0, 2, NULL);
Response
1
Avec NULL
Query
SELECT or(0, NULL);
Response
ᴺᵁᴸᴸ

xor

Introduit dans : v1.1.0 Calcule la disjonction exclusive logique de deux valeurs ou plus. Pour plus de deux valeurs d’entrée, la fonction effectue d’abord un xor sur les deux premières valeurs, puis un xor entre le résultat et la troisième, et ainsi de suite. L’argument zéro est considéré comme false, les valeurs non nulles sont considérées comme true. Syntaxe
xor(val1, val2[, ...])
Arguments Valeur renvoyée Renvoie :
  • 1, pour deux valeurs : si l’une des valeurs vaut false et l’autre non
  • 0, pour deux valeurs : si les deux valeurs valent false ou toutes deux true
  • NULL, si au moins un des arguments est NULL. Nullable(UInt8)
Exemples Utilisation de base
Query
SELECT xor(0, 1, 1);
Response
0
Dernière modification le 25 juin 2026