Fungsi kondisional - Amazon Simple Storage Service

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

Fungsi kondisional

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

Amazon S3 Select mendukung fungsi kondisional berikut.

CASE

Ekspresi CASE adalah ekspresi kondisional yang serupa dengan pernyataan if/then/else yang ditemukan dalam bahasa lain. CASEdigunakan 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

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

catatan

Jika Anda menggunakan konsol Amazon S3 untuk menjalankan contoh berikut dan CSV file Anda 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

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

COALESCE ( expression, expression, ... )

Parameter

expression

Ekspresi target tempat fungsi beroperasi.

Contoh

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

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

NULLIF ( expression1, expression2 )

Parameter

expression1, expression2

Ekspresi target tempat fungsi beroperasi.

Contoh

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