- Catégories :
BOOLNOT¶
Calcule le booléen NOT d’une seule expression numérique. Conformément à la sémantique booléenne :
Les valeurs différentes de zéro, y compris les nombres négatifs, sont considérées comme « true ».
Les valeurs égales à zéro sont considérées comme « false ».
En conséquence, la fonction renvoie :
Truesi l’expression est zéro.Falsesi l’expression est non nulle.NULLsi l’expression est NULL.
Syntaxe¶
BOOLNOT( <expr> )
Arguments¶
exprUne expression numérique
Renvoie¶
Cette fonction renvoie une valeur de type BOOLEAN ou NULL.
Notes sur l’utilisation¶
Cette fonction arrondit les nombres à virgule flottante. Par conséquent, elle peut renvoyer des résultats inattendus pour les nombres à virgule flottante qui s’arrondissent à zéro.
Pour des exemples de ce comportement et de solutions de contournement, voir Calcule les résultats NOT du booléen pour les nombres à virgule flottante.
Exemples¶
Les exemples suivants utilisent la fonction BOOLNOT.
Calcule les résultats NOT du booléen pour les entiers et les valeurs NULL¶
La requête suivante calcule les résultats NOT du booléen pour les entiers et les valeurs NULL :
SELECT BOOLNOT(0),
BOOLNOT(10),
BOOLNOT(NULL);
+------------+-------------+---------------+
| BOOLNOT(0) | BOOLNOT(10) | BOOLNOT(NULL) |
|------------+-------------+---------------|
| True | False | NULL |
+------------+-------------+---------------+
Calcule les résultats NOT du booléen pour les nombres à virgule flottante¶
Les exemples suivants montrent comment la fonction peut renvoyer des résultats inattendus pour des nombres à virgule flottante qui s’arrondissent à zéro.
Pour les requêtes suivantes, un résultat False peut être attendu pour les appels de fonction suivants, mais ils renvoient True car la fonction arrondit les valeurs à virgule flottante non nulles à zéro :
SELECT BOOLNOT(0.3);
+--------------+
| BOOLNOT(0.3) |
|--------------|
| True |
+--------------+
SELECT BOOLNOT(-0.4);
+---------------+
| BOOLNOT(-0.4) |
|---------------|
| True |
+---------------+
Si nécessaire, vous pouvez contourner ce comportement d’arrondi pour les valeurs à virgule flottante positives en utilisant la fonction CEIL. Par exemple, la requête suivante renvoie False :
SELECT BOOLNOT(CEIL(0.3));
+--------------------+
| BOOLNOT(CEIL(0.3)) |
|--------------------|
| False |
+--------------------+
Pour les valeurs à virgule flottante négatives, vous pouvez contourner ce comportement d’arrondi en utilisant l’opérateur logique NOT au lieu de la fonction. Par exemple, la requête suivante renvoie False :
SELECT NOT -0.4;
+----------+
| NOT -0.4 |
|----------|
| False |
+----------+