Ekspresi bersyarat CASE - Amazon Redshift

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

Ekspresi bersyarat CASE

Ekspresi CASE adalah ekspresi bersyarat yang serupa dengan pernyataan if/then/else yang ditemukan dalam bahasa lain. CASE digunakan untuk menentukan hasil jika terdapat beberapa kondisi. Gunakan CASE di mana ekspresi SQL valid, seperti dalam perintah SELECT.

Ada 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. Jika tidak ada kecocokan ditemukan, tindakan dalam klausul ELSE diterapkan.

  • Dalam ekspresi CASE yang dicari, setiap CASE dievaluasi berdasarkan ekspresi Boolean, dan pernyataan CASE mengembalikan CASE yang cocok pertama. Jika tidak ada kecocokan yang ditemukan di antara klausa WHEN, tindakan dalam klausa ELSE dikembalikan.

Sintaks

Pernyataan CASE sederhana yang digunakan untuk menyesuaikan kondisi:

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

Pernyataan CASE yang dicari digunakan untuk mengevaluasi setiap kondisi:

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

Argumen

ekspresi

Nama kolom atau ekspresi yang valid.

nilai

Nilai yang dibandingkan dengan ekspresi, seperti konstanta numerik atau string karakter.

hasil

Nilai target atau ekspresi yang dikembalikan ketika ekspresi atau kondisi Boolean dievaluasi. Tipe data dari semua ekspresi hasil harus dikonversi ke tipe output tunggal.

ketentuan

Ekspresi Boolean yang mengevaluasi benar atau salah. Jika kondisi benar, nilai ekspresi CASE adalah hasil yang mengikuti kondisi, dan sisa ekspresi CASE tidak diproses. Jika kondisinya salah, klausa WHEN berikutnya dievaluasi. Jika tidak ada hasil kondisi WHEN yang benar, nilai ekspresi CASE adalah hasil dari klausa ELSE. Jika klausa ELSE dihilangkan dan tidak ada kondisi yang benar, hasilnya adalah nol.

Contoh

Contoh berikut menggunakan tabel VENUE dan tabel PENJUALAN dari sampel data TICKIT. Untuk informasi selengkapnya, lihat Database sampel.

Gunakan ekspresi CASE sederhana untuk mengganti New York City Big Apple dengan query terhadap tabel VENUE. Ganti semua nama kota lainnya dengan other.

select venuecity, case venuecity when 'New York City' then 'Big Apple' else 'other' end from venue order by venueid desc; venuecity | case -----------------+----------- Los Angeles | other New York City | Big Apple San Francisco | other Baltimore | other ...

Gunakan ekspresi CASE yang dicari untuk menetapkan nomor grup berdasarkan nilai PRICEPAID untuk penjualan tiket individu:

select pricepaid, case when pricepaid <10000 then 'group 1' when pricepaid >10000 then 'group 2' else 'group 3' end from sales order by 1 desc; pricepaid | case ----------+--------- 12624 | group 2 10000 | group 3 10000 | group 3 9996 | group 1 9988 | group 1 ...