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 BOOLEAN Datentyp, um wahre und falsche Werte in einer Einzelbyte-Spalte 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 verwenden, um einen booleschen Wert nur als Prädikat in der Klausel zu überprüfen. WHERE Sie können den IS-Vergleich nicht mit einem booleschen Wert in der Liste verwenden. SELECT
Beispiele
Sie könnten eine BOOLEAN Spalte verwenden, um den Status „Aktiv/Inaktiv“ für jeden Kunden in einer Tabelle zu speichern. CUSTOMER
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
oderfalse
) angegeben ist, bedeutet das Einfügen eines Standardwerts das Einfügen einer Null.
In diesem Beispiel wählt die Abfrage Benutzer aus der USERS Tabelle aus, die Sport mögen, Theater aber nicht mögen:
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 Benutzer aus der USERS Tabelle ausgewählt, für die 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, da 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 ist erfolgreich, weil statt des IS-Vergleichs ein Gleichheitsvergleich (=) in der SELECT Liste 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 |