Type Boolean - Amazon Redshift

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 BOOLEAN données pour stocker les valeurs vraies et fausses dans une colonne à 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 en tant que prédicat dans la clause. WHERE Vous ne pouvez pas utiliser la comparaison IS avec une valeur booléenne de la SELECT liste.

Exemples

Vous pouvez utiliser une BOOLEAN colonne pour enregistrer un état « actif/inactif » pour chaque client dans un CUSTOMER tableau.

create table customer( custid int, active_flag boolean default true);
insert into customer values(100, default);
select * from customer; custid | active_flag -------+-------------- 100 | t

Si aucune valeur par défaut (trueoufalse) n'est spécifiée dans l'CREATETABLEinstruction, l'insertion d'une valeur par défaut signifie l'insertion d'une valeur nulle.

Dans cet exemple, la requête sélectionne dans le USERS tableau les utilisateurs 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 ----------+------------+------------+------------- Lars | Ratliff | t | f Mufutau | Watkins | t | f Scarlett | Mayer | t | f Shafira | Glenn | t | f Winifred | Cherry | t | f Chase | Lamb | t | f Liberty | Ellison | t | f Aladdin | Haney | t | f Tashya | Michael | t | f Lucian | Montgomery | t | f (10 rows)

L'exemple suivant sélectionne dans le USERS tableau les utilisateurs dont on ne sait pas s'ils aiment la musique rock.

select firstname, lastname, likerock from users where likerock is unknown order by userid limit 10; firstname | lastname | likerock ----------+----------+---------- Rafael | Taylor | Vladimir | Humphrey | Barry | Roy | Tamekah | Juarez | Mufutau | Watkins | Naida | Calderon | Anika | Huff | Bruce | Beck | Mallory | Farrell | Scarlett | Mayer | (10 rows)

L'exemple suivant renvoie une erreur car il utilise une comparaison IS dans la SELECT liste.

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 SELECT liste au lieu de la comparaison IS.

select firstname, lastname, likerock = true as "check" from users order by userid limit 10; firstname | lastname | check ----------+-----------+------ Rafael | Taylor | Vladimir | Humphrey | Lars | Ratliff | true Barry | Roy | Reagan | Hodge | true Victor | Hernandez | true Tamekah | Juarez | Colton | Roy | false Mufutau | Watkins | Naida | Calderon |