

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Fungsi kondisional
<a name="s3-select-sql-reference-conditional"></a>

**penting**  
Amazon S3 Select tidak lagi tersedia untuk pelanggan baru. Pelanggan Amazon S3 Select yang sudah ada dapat terus menggunakan fitur seperti biasa. [Pelajari selengkapnya](https://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/) 

Amazon S3 Select mendukung fungsi kondisional berikut.

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

Ekspresi `CASE` adalah ekspresi kondisional yang serupa dengan pernyataan `if/then/else` yang ditemukan dalam bahasa lain. `CASE`digunakan untuk menentukan hasil jika terdapat beberapa kondisi. Terdapat dua jenis ekspresi `CASE`: sederhana dan dicari.

Dalam ekspresi `CASE` sederhana, ekspresi dibandingkan dengan nilai. Ketika kecocokan ditemukan, tindakan yang ditentukan dalam klausul `THEN` diterapkan. Apabila kecocokan tidak ditemukan, tindakan dalam klausul `ELSE` diterapkan.

Dalam ekspresi `CASE` yang dicari, masing-masing `CASE` dievaluasi berdasarkan ekspresi Boolean, dan pernyataan `CASE` mengembalikan kecocokan pertama `CASE`. Jika tidak ada kecocokan `CASE` yang ditemukan di antara klausul `WHEN`, tindakan dalam klausul `ELSE` dikembalikan.

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

**catatan**  
Saat ini, Amazon S3 Select tidak mendukung `ORDER BY` atau kueri yang berisi baris baru. Pastikan Anda menggunakan kueri tanpa jeda baris.

Berikut ini adalah pernyataan `CASE` sederhana yang digunakan untuk mencocokkan kondisi:

```
CASE expression WHEN value THEN result [WHEN...] [ELSE result] END					
```

Berikut ini adalah pernyataan `CASE` yang dicari yang digunakan untuk mengevaluasi setiap kondisi:

```
CASE WHEN boolean condition THEN result [WHEN ...] [ELSE result] END					
```

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

**catatan**  
Apabila Anda menggunakan konsol Amazon S3 untuk menjalankan contoh berikut dan file CSV berisi baris header, pilih **Kecualikan baris pertama data CSV**. 

**Contoh 1:** Gunakan ekspresi `CASE` sederhana untuk mengganti `New York City` dengan `Big Apple` dalam kueri. Ganti semua nama kota lainnya dengan `other`.

```
SELECT venuecity, CASE venuecity WHEN 'New York City' THEN 'Big Apple' ELSE 'other' END FROM S3Object;
```

Hasil kueri: 

```
venuecity        |   case
-----------------+-----------
Los Angeles      | other
New York City    | Big Apple
San Francisco    | other
Baltimore        | other
...
```

**Contoh 2:** Gunakan ekspresi `CASE` yang dicari untuk menetapkan nomor grup berdasarkan nilai `pricepaid` penjualan tiket individu:

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

Hasil kueri: 

```
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` mengevaluasi argumen secara berurutan dan mengembalikan nilai non-tidak diketahui pertama, yaitu, nilai non-null atau non-hilang yang pertama. Fungsi ini tidak memperbanyak nilai null dan hilang.

### Sintaks
<a name="s3-select-sql-reference-coalesce-syntax"></a>

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

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

 *`expression`*   
Ekspresi target tempat fungsi beroperasi.

### Contoh
<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>

Dengan dua ekspresi, `NULLIF` mengembalikan `NULL` jika kedua ekspresi tersebut mengevaluasi nilai yang sama; jika tidak, `NULLIF` mengembalikan hasil evaluasi ke ekspresi yang pertama.

### Sintaks
<a name="s3-select-sql-reference-nullif-syntax"></a>

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

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

 `expression1, expression2`   
Ekspresi target tempat fungsi beroperasi.

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