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

Amazon S3 Select mendukung fungsi kondisional berikut.

CASE

CASEEkspresi tersebut adalah ekspresi bersyarat, mirip dengan if/then/else pernyataan yang ditemukan dalam bahasa lain. CASEdigunakan untuk menentukan hasil jika terdapat beberapa kondisi. Ada dua jenis CASE ekspresi: sederhana dan dicari.

Dalam CASE ekspresi sederhana, ekspresi dibandingkan dengan nilai. Ketika kecocokan ditemukan, tindakan tertentu dalam THEN klausul diterapkan. Jika tidak ada kecocokan ditemukan, tindakan dalam ELSE klausul diterapkan.

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

Sintaksis

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 CASE pernyataan sederhana yang digunakan untuk mencocokkan kondisi:

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

Berikut ini adalah CASE pernyataan 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 file CSV Anda berisi baris header, pilih Kecualikan baris pertama data CSV.

Contoh 1: Gunakan CASE ekspresi sederhana untuk mengganti New York City dengan Big Apple dalam query. Ganti semua nama kota lainnya denganother.

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 CASE ekspresi yang dicari untuk menetapkan nomor grup berdasarkan pricepaid nilai 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

COALESCEmengevaluasi argumen secara berurutan dan mengembalikan nilai non-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 yang fungsinya berjalan.

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 kembalikan NULL jika kedua ungkapan tersebut mengevaluasi nilai yang sama; jika tidak, NULLIF kembalikan hasil evaluasi ke ekspresi yang pertama.

Sintaks

NULLIF ( expression1, expression2 )

Parameter

expression1, expression2

Ekspresi target yang menjalankan fungsi.

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