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
CASE
Ekspresi tersebut adalah ekspresi bersyarat, mirip dengan if/then/else
pernyataan yang ditemukan dalam bahasa lain. CASE
digunakan 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
WHENvalue
THENresult
[WHEN...] [ELSEresult
] END
Berikut ini adalah CASE
pernyataan yang dicari yang digunakan untuk mengevaluasi setiap kondisi:
CASE WHEN
boolean condition
THENresult
[WHEN ...] [ELSEresult
] 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
COALESCE
mengevaluasi 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