Logische Bedingungen - AWS Clean Rooms

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.

Logische Bedingungen

Logische Bedingungen führen die Ergebnisse zweier Bedingungen zu einem Ergebnis zusammen. Alle logischen Bedingungen sind binäre Operatoren mit einem Booleschen Rückgabewert.

Syntax

expression { AND | OR } expression NOT expression

Bei logischen Bedingungen wird eine dreiwertige Boolesche Logik verwendet, bei der der Wert „Null“ als „unbekannt“ interpretiert wird. Die folgende Tabelle beschreibt die Ergebnisse von logischen Bedingungen, wobei E1 und E2 Ausdrücke sind:

E1 E2 E1 AND E2 E1 OR E2 NOTE2
TRUE TRUE TRUE TRUE FALSE
TRUE FALSE FALSE TRUE TRUE
TRUE UNKNOWN UNKNOWN TRUE UNKNOWN
FALSE TRUE FALSE TRUE
FALSE FALSE FALSE FALSE
FALSE UNKNOWN FALSE UNKNOWN
UNKNOWN TRUE UNKNOWN TRUE
UNKNOWN FALSE FALSE UNKNOWN
UNKNOWN UNKNOWN UNKNOWN UNKNOWN

Der NOT Operator wird vorher ausgewertetAND, und der AND Operator wird vor dem OR-Operator ausgewertet. Diese Auswertungsreihenfolge kann durch Klammerung außer Kraft gesetzt werden.

Beispiele

Das folgende Beispiel gibt USERID und USERNAME aus der USERS Tabelle zurück, in der der Benutzer sowohl Las Vegas als auch Sport mag:

select userid, username from users where likevegas = 1 and likesports = 1 order by userid; userid | username --------+---------- 1 | JSG99FHE 67 | TWU10MZT 87 | DUF19VXU 92 | HYP36WEQ 109 | FPL38HZK 120 | DMJ24GUZ 123 | QZR22XGQ 130 | ZQC82ALK 133 | LBN45WCH 144 | UCX04JKN 165 | TEY68OEB 169 | AYQ83HGO 184 | TVX65AZX ... (2128 rows)

Im nächsten Beispiel werden die USERID Werte und USERNAME aus der USERS Tabelle zurückgegeben, in der der Benutzer Las Vegas oder Sport oder beides mag. Diese Abfrage gibt alle Ergebnisse des vorangehenden Beispiels, zuzüglich der Benutzer, die Las Vegas mögen, zuzüglich der Benutzer, die Sport mögen.

select userid, username from users where likevegas = 1 or likesports = 1 order by userid; userid | username --------+---------- 1 | JSG99FHE 2 | PGL08LJI 3 | IFT66TXU 5 | AEB55QTM 6 | NDQ15VBM 9 | MSD36KVR 10 | WKW41AIW 13 | QTF33MCG 15 | OWU78MTR 16 | ZMG93CDD 22 | RHT62AGI 27 | KOY02CVE 29 | HUH27PKK ... (18968 rows)

In der folgenden Abfrage wird die Bedingung OR in Klammern gesetzt, um alle Veranstaltungen zu suchen, die in New York oder in Kalifornien stattfinden, und bei denen Macbeth gegeben wird:

select distinct venuename, venuecity from venue join event on venue.venueid=event.venueid where (venuestate = 'NY' or venuestate = 'CA') and eventname='Macbeth' order by 2,1; venuename | venuecity ----------------------------------------+--------------- Geffen Playhouse | Los Angeles Greek Theatre | Los Angeles Royce Hall | Los Angeles American Airlines Theatre | New York City August Wilson Theatre | New York City Belasco Theatre | New York City Bernard B. Jacobs Theatre | New York City ...

Wenn die Klammerung in dem vorangehenden Beispiel entfernt wird, ändert sich die der bei der Auswertung ermittelte Wert und damit das Ergebnis der Abfrage.

In dem folgenden Beispiel wird der Operator NOT verwendet.

select * from category where not catid=1 order by 1; catid | catgroup | catname | catdesc -------+----------+-----------+-------------------------------------------- 2 | Sports | NHL | National Hockey League 3 | Sports | NFL | National Football League 4 | Sports | NBA | National Basketball Association 5 | Sports | MLS | Major League Soccer ...

Im folgenden Beispiel wird eine NOT-Bedingung verwendet, gefolgt von einer AND-Bedingung:

select * from category where (not catid=1) and catgroup='Sports' order by catid; catid | catgroup | catname | catdesc -------+----------+---------+--------------------------------- 2 | Sports | NHL | National Hockey League 3 | Sports | NFL | National Football League 4 | Sports | NBA | National Basketball Association 5 | Sports | MLS | Major League Soccer (4 rows)