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 kondisional, mirip dengan if/then/else pernyataan 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
...