Typ BOOLEAN - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Typ BOOLEAN

Verwenden Sie den Typ BOOLEAN, um die Wahrheitswerte „wahr“ bzw. „falsch“ in einer Einzelbytespalte zu speichern. Die folgende Tabelle enthält Beschreibungen der drei möglichen Zustände der Booleschen Werte und deren entsprechenden Literale. Unabhängig von der eingegebenen Zeichenfolge werden Werte in Booleschen Spalten mit „t“ für den Wahrheitswert „wahr“ und „f“ für den Wahrheitswert „falsch“ gespeichert und angezeigt.

Status Zulässige Literalwerte Speicher
Wahr TRUE 't' 'true' 'y' 'yes' '1' 1 Byte
Falsch FALSE 'f' 'false' 'n' 'no' '0' 1 Byte
Unbekannt NULL 1 Byte

Sie können einen IS-Vergleich nur verwenden, um einen booleschen Wert als Prädikat in der WHERE-Klausel zu prüfen. Sie können den IS-Vergleich nicht mit einem booleschen Wert in der SELECT-Liste verwenden.

Beispiele

Sie können eine Spalte vom Typ BOOLEAN verwenden, um in einer Tabelle CUSTOMER den Status der Kunden als „aktiv“ bzw. „inaktiv“ zu speichern.

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

Wenn in der CREATE TABLE-Anweisung kein Standardwert (true oder false) festgelegt wird, wird als Wert stets „Null“ eingefügt.

In diesem Beispiel werden mit einer Abfrage aus der Tabelle USERS diejenigen Benutzer ausgewählt, die Sport mögen, nicht aber Theaterveranstaltungen:

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)

Im folgenden Beispiel werden diejenigen Benutzer aus der Tabelle USERS ausgewählt, von denen nicht bekannt ist, ob sie Rockmusik mögen.

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)

Im folgenden Beispiel wird ein Fehler zurückgegeben, weil ein IS-Vergleich in der SELECT-Liste verwendet wird.

select firstname, lastname, likerock is true as "check" from users order by userid limit 10; [Amazon](500310) Invalid operation: Not implemented

Das folgende Beispiel wird erfolgreich ausgeführt, weil ein Gleich-Vergleich ( = ) in der SELECT-Liste anstelle des IS-Vergleichs verwendet wird.

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 |