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. 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
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
WHENvalue
THENresult
[WHEN...] [ELSEresult
] END
Berikut ini adalah pernyataan CASE
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 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