Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Type Boolean
Utilisez le type de données BOOLEAN pour stocker les valeurs true et false dans une colonne codée sur un octet. Le tableau suivant décrit les trois états possibles pour une valeur booléenne et les valeurs littérales qui entraînent cet état. Quelle que soit la chaîne en entrée, une colonne booléenne stocke et émet « t » pour true et « f » pour false.
État | Valeurs littérales valides | Stockage |
---|---|---|
True | TRUE 't' 'true' 'y' 'yes' '1'
|
1 octet |
False | FALSE 'f' 'false' 'n' 'no' '0'
|
1 octet |
Je ne sais pas | NULL
|
1 octet |
Vous pouvez utiliser une comparaison IS pour vérifier une valeur booléenne uniquement sous la forme d’un prédicat dans la clause WHERE. Vous ne pouvez pas utiliser la comparaison IS avec une valeur booléenne dans la liste SELECT.
Exemples
Vous pouvez utiliser une colonne BOOLEAN pour enregistrer un état « actif/inactif » pour chaque client dans une table CUSTOMER.
select * from customer; custid | active_flag -------+-------------- 100 | t
Dans cet exemple, la requête suivante sélectionne les utilisateurs du tableau USERS qui aiment le sport mais pas le théâtre :
select firstname, lastname, likesports, liketheatre from users where likesports is true and liketheatre is false order by userid limit 10; firstname | lastname | likesports | liketheatre ----------+------------+------------+------------- Alejandro | Rosalez | t | f Akua | Mansa | t | f Arnav | Desai | t | f Carlos | Salazar | t | f Diego | Ramirez | t | f Efua | Owusu | t | f John | Stiles | t | f Jorge | Souza | t | f Kwaku | Mensah | t | f Kwesi | Manu | t | f (10 rows)
L’exemple suivant sélectionne les utilisateurs de la table USERS pour lesquels on ignore s’ils aiment la musique rock.
select firstname, lastname, likerock from users where likerock is unknown order by userid limit 10; firstname | lastname | likerock ----------+----------+---------- Alejandro | Rosalez | Carlos | Salazar | Diego | Ramirez | John | Stiles | Kwaku | Mensah | Martha | Rivera | Mateo | Jackson | Paulo | Santos | Richard | Roe | Saanvi | Sarkar | (10 rows)
L’exemple suivant renvoie une erreur parce qu’il utilise une comparaison IS dans la liste SELECT.
select firstname, lastname, likerock is true as "check" from users order by userid limit 10; [Amazon](500310) Invalid operation: Not implemented
L'exemple suivant réussit car il utilise une comparaison égale (=) dans la liste SELECT au lieu de la IS comparaison.
select firstname, lastname, likerock = true as "check" from users order by userid limit 10; firstname | lastname | check ----------+-----------+------ Alejandro | Rosalez | Carlos | Salazar | Diego | Ramirez | true John | Stiles | Kwaku | Mensah | true Martha | Rivera | true Mateo | Jackson | Paulo | Santos | false Richard | Roe | Saanvi | Sarkar |