

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
<a name="s3-select-sql-reference-conditional"></a>

**Wichtig**  
Amazon S3 Select ist für Neukunden nicht mehr verfügbar. Bestandskunden von Amazon S3 Select können das Feature weiterhin wie gewohnt nutzen. [Weitere Informationen](https://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/) 

Amazon S3 Select unterstützt die folgenden bedingten Funktionen.

**Topics**
+ [CASE](#s3-select-sql-reference-case)
+ [COALESCE](#s3-select-sql-reference-coalesce)
+ [NULLIF](#s3-select-sql-reference-nullif)

## CASE
<a name="s3-select-sql-reference-case"></a>

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
<a name="s3-select-sql-reference-case-syntax"></a>

**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
<a name="s3-select-sql-reference-case-examples"></a>

**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
<a name="s3-select-sql-reference-coalesce"></a>

`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
<a name="s3-select-sql-reference-coalesce-syntax"></a>

```
COALESCE ( expression, expression, ... )
```

### Parameters
<a name="s3-select-sql-reference-coalesce-parameters"></a>

 *`expression`*   
Der Zielausdruck, der von der Funktion verwendet wird.

### Beispiele
<a name="s3-select-sql-reference-coalesce-examples"></a>

```
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
<a name="s3-select-sql-reference-nullif"></a>

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
<a name="s3-select-sql-reference-nullif-syntax"></a>

```
NULLIF ( expression1, expression2 )
```

### Parameters
<a name="s3-select-sql-reference-nullif-parameters"></a>

 `expression1, expression2`   
Die Zielausdrücke, die von der Funktion verwendet werden.

### Beispiele
<a name="s3-select-sql-reference-nullif-examples"></a>

```
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
```