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 différentes de zéro sont considérées comme true.
Syntaxe
and(val1, val2[, ...])Arguments
val1, val2[, ...]— Liste d’au moins deux valeurs.Nullable((U)Int*)ouNullable(Float*)
Valeur renvoyée
Renvoie :
0, si au moins un argument vautfalseNULL, si aucun argument ne vautfalseet qu’au moins un argument estNULL1, sinonNullable(UInt8)
Exemples
Utilisation de base
SELECT and(0, 1, -2);0Avec NULL
SELECT and(NULL, 1, 10, -2);\Nnot
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, sivalest interprété commefalse0, sivalest interprété commetrueNULL, sivalestNULL.Nullable(UInt8)
Exemples
Utilisation de base
SELECT NOT(1);0or
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
val1, val2[, ...]— Liste d’au moins deux valeurs.Nullable((U)Int*)ouNullable(Float*)
Valeur renvoyée
Renvoie :
1, si au moins un argument vauttrue0, si tous les arguments valentfalseNULL, si tous les arguments valentfalseet qu’au moins l’un d’eux estNULLNullable(UInt8)
Exemples
Utilisation de base
SELECT or(1, 0, 0, 2, NULL);1Avec NULL
SELECT or(0, NULL);\Nxor
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
val1, val2[, ...]— Liste d’au moins deux valeurs.Nullable((U)Int*)ouNullable(Float*)
Valeur renvoyée
Renvoie :
1, pour deux valeurs : si l’une des valeurs vautfalseet l’autre non0, pour deux valeurs : si les deux valeurs valentfalseou toutes deuxtrueNULL, si au moins un des arguments estNULL.Nullable(UInt8)
Exemples
Utilisation de base
SELECT xor(0, 1, 1);0