Konditionale Funktionen - Amazon Simple Storage Service

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 WHEN value THEN result [WHEN...] [ELSE result] END

Die folgende Zeichenfolge ist eine gesuchte CASE-Anweisung, die verwendet wird, um jede Bedingung auszuwerten:

CASE WHEN boolean condition THEN result [WHEN ...] [ELSE result] 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