Type de données logiques
Dans Firebird 3.0, un type de données logique complet a été introduit.
Types numériques approximatifs
Comportement des opérations avec DECFLOAT
Longueur des littéraux DECFLOAT
DECFLOAT et fonctions Utilisation des fonctions conventionnelles Fonctions spéciales pour `DECFLOAT
Types de données en virgule flottante
Types de données à virgule fixe
Types de données pour travailler avec la date et l'heure
Conversion des types de données
Dans Firebird 3.0, un type de données logique complet a été introduit.
BOOLEAN
Le type de données BOOLEAN
(8 bits) conforme à SQL-2008 comprend diverses valeurs de vérité TRUE
et FALSE
.À moins que la restriction NOT NULL
ne soit définie, le type de données BOOLEAN
supporte également la valeur de vérité UNKNOWN
comme une valeur NULL
.La spécification ne fait pas de distinction entre une valeur NULL de ce type et une valeur de vérité UNKNOWN qui est le résultat d’un prédicat SQL, d’une condition de recherche ou d’une expression de type logique.Ces valeurs sont interchangeables et signifient la même chose.
Comme dans les autres langages de programmation, les valeurs de type BOOLEAN
peuvent être testées en valeurs de vérité implicites.Par exemple, "champ1 OR champ2" ou "NOT champ1" sont des expressions valables.
IS
Les prédicats peuvent utiliser l’opérateur logical IS [NOT]
pour la correspondance.Par exemple, field1 IS FALSE
, ou field1 IS NOT TRUE
.
Note
|
|
BOOLEAN
CREATE TABLE TBOOL (ID INT, BVAL BOOLEAN);
COMMIT;
INSERT INTO TBOOL VALUES (1, TRUE);
INSERT INTO TBOOL VALUES (2, 2 = 4);
INSERT INTO TBOOL VALUES (3, NULL = 1);
COMMIT;
SELECT * FROM TBOOL
ID BVAL ============ ======= 1 <true> 2 <false> 3 <null>
SELECT * FROM TBOOL WHERE BVAL
ID BVAL ============ ======= 1 <true>
FALSE
.SELECT * FROM TBOOL WHERE BVAL IS FALSE
ID BVAL ============ ======= 2 <false>
UNKNOWN
.SELECT * FROM TBOOL WHERE BVAL IS UNKNOWN
ID BVAL ============ ======= 3 <null>
SELECT ID, BVAL, BVAL AND ID < 2
FROM TBOOL
ID BVAL ============ ======= ======= 1 <true> <true> 2 <false> <false> 3 <null> <false>
DECLARE VARIABLE VAR1 BOOLEAN = TRUE;
-- Syntaxe acceptable, mais comme la comparaison
-- NULL, ne renverra jamais aucun des enregistrements
SELECT * FROM TBOOL WHERE BVAL = UNKNOWN
SELECT * FROM TBOOL WHERE BVAL <> UNKNOWN