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.
Konditionale Funktionen
Amazon S3 Select unterstützt die folgenden bedingten Funktionen.
CASE
Der CASE
-Ausdruck ist ein bedingter Ausdruck, der sich mit den if/then/else
-Anweisungen anderer Sprachen vergleichen lässt. CASE
wird verwendet, um ein Ergebnis anzugeben, wenn es mehrere Bedingungen gibt. Es gibt zwei Arten von CASE
-Ausdrücken: einfach und gesucht.
In einfachen CASE
-Ausdrücken wird ein Ausdruck mit einem Wert verglichen. Wenn keine Übereinstimmung gefunden wird, wird die in der THEN
-Klausel angegebene Aktion angewendet. Wenn keine Übereinstimmung gefunden wird, wird die in der ELSE
-Klausel angegebene Aktion angewendet.
In gesuchten CASE
-Ausdrücken wird jeder CASE
-Ausdruck auf der Basis eines booleschen Ausdrucks evaluiert und die CASE
-Anweisung gibt den ersten übereinstimmenden CASE
-Ausdruck zurück. Wenn in den WHEN
-Klauseln kein übereinstimmender CASE
-Ausdruck gefunden wird, wird die Aktion in der ELSE
-Klausel zurückgegeben.
Syntax
Anmerkung
Derzeit unterstützt Amazon S3 Select weder ORDER BY
noch Abfragen, die neue Zeilen enthalten. Achten Sie darauf, Abfragen ohne Zeilenumbrüche zu verwenden.
Die folgende Zeichenfolge ist eine einfache CASE
-Aussage, die verwendet wird, um Bedingungen abzugleichen:
CASE
expression
WHENvalue
THENresult
[WHEN...] [ELSEresult
] END
Die folgende Zeichenfolge ist eine gesuchte CASE
-Anweisung, die verwendet wird, um jede Bedingung auszuwerten:
CASE WHEN
boolean condition
THENresult
[WHEN ...] [ELSEresult
] END
Beispiele
Anmerkung
Wenn Sie die Amazon-S3-Konsole verwenden, um die folgenden Beispiele auszuführen, und Ihre CSV-Datei eine Kopfzeile enthält, wählen Sie Exclude the first line of CSV data (Die erste CSV-Datenzeile ausschließen) aus.
Beispiel 1: Verwenden Sie einen einfachen CASE
-Ausdruck, um New York City
in einer Abfrage durch Big Apple
zu ersetzen. Alle anderen Städtenamen werden durch other
ersetzt.
SELECT venuecity, CASE venuecity WHEN 'New York City' THEN 'Big Apple' ELSE 'other' END FROM S3Object;
Abfrageergebnis:
venuecity | case -----------------+----------- Los Angeles | other New York City | Big Apple San Francisco | other Baltimore | other ...
Beispiel 2: Verwenden Sie einen gesuchten CASE
-Ausdruck, um Gruppennummern basierend auf dem pricepaid
-Wert für einzelne Ticketverkäufe zuzuweisen:
SELECT pricepaid, CASE WHEN CAST(pricepaid as FLOAT) < 10000 THEN 'group 1' WHEN CAST(pricepaid as FLOAT) > 10000 THEN 'group 2' ELSE 'group 3' END FROM S3Object;
Abfrageergebnis:
pricepaid | case -----------+--------- 12624.00 | group 2 10000.00 | group 3 10000.00 | group 3 9996.00 | group 1 9988.00 | group 1 ...
COALESCE
COALESCE
wertet die Argumente nacheinander aus und gibt den ersten unbekannten Wert zurück, das heißt, den ersten Wert, der nicht null oder nicht fehlend ist. Null- und fehlende Werte werden von der Funktion nicht übernommen.
Syntax
COALESCE (
expression
,expression
, ... )
Parameter
-
expression
-
Der Zielausdruck, der von der Funktion verwendet wird.
Beispiele
COALESCE(1) -- 1 COALESCE(null) -- null COALESCE(null, null) -- null COALESCE(missing) -- null COALESCE(missing, missing) -- null COALESCE(1, null) -- 1 COALESCE(null, null, 1) -- 1 COALESCE(null, 'string') -- 'string' COALESCE(missing, 1) -- 1
NULLIF
Bei zwei Ausdrücken, die das gleiche Auswertungsergebnis haben, gibt NULLIF
NULL
zurück. Andernfalls gibt NULLIF
das Auswertungsergebnis für den ersten Ausdruck zurück.
Syntax
NULLIF (
expression1
,expression2
)
Parameter
-
expression1
,expression2
-
Die Zielausdrücke, die von der Funktion verwendet werden.
Beispiele
NULLIF(1, 1) -- null NULLIF(1, 2) -- 1 NULLIF(1.0, 1) -- null NULLIF(1, '1') -- 1 NULLIF([1], [1]) -- null NULLIF(1, NULL) -- 1 NULLIF(NULL, 1) -- null NULLIF(null, null) -- null NULLIF(missing, null) -- null NULLIF(missing, missing) -- null