CASE WHEN: Ekspresi Kondisional dalam Query
Penjelasan
CASE WHEN adalah ekspresi kondisional yang bisa dipakai LANGSUNG di dalam SELECT (atau ORDER BY, WHERE) — mirip if/else tapi menghasilkan NILAI, bukan mengontrol alur program. Setiap `WHEN kondisi THEN nilai` dicek berurutan dari atas, dan `ELSE` jadi nilai default kalau tidak ada yang cocok (opsional, default-nya NULL kalau dihilangkan).
Contoh Konsep
SELECT
name,
price,
CASE
WHEN price >= 200000 THEN 'Mahal'
WHEN price >= 100000 THEN 'Sedang'
ELSE 'Murah'
END AS kategori_harga
FROM products;
-- Bisa juga dipakai untuk menghitung ringkasan kondisional
SELECT
COUNT(CASE WHEN status = 'published' THEN 1 END) AS jumlah_published,
COUNT(CASE WHEN status = 'draft' THEN 1 END) AS jumlah_draft
FROM articles;
Praktikum
Dari tabel 'articles' (kolom title, view_count), tulis query dengan CASE WHEN yang menampilkan title beserta kolom baru 'popularitas': 'Viral' (view_count >= 10000), 'Populer' (>= 1000), atau 'Biasa' (selain itu).
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Jangan lupa `END` di akhir setiap CASE WHEN — ini kesalahan paling umum bagi pemula, apalagi kalau CASE WHEN ditulis di tengah SELECT dengan banyak kolom lain.