CASE Statement in SQL

Here some different usage of CASE statements:

select
CASE
WHEN tag.tag_jenis = 'BFR' THEN 'Main Income'
WHEN tag.tag_jenis like 'DP%' THEN 'Main Income'
WHEN tag.tag_jenis like 'ANG%' THEN 'Main Income'
ELSE 'Others Income'
END AS Kategori_Keterangan
from tagihan tag

Pada contoh diatas kita mengembalikan suatu string pada kolom baru yg kita buat (Kategori_Keterangan) dengan kriteria dimana jika kolom tag_jenis berisikan kata 'BFR' atau berawalan 'DP' atau 'ANG' maka pada kolom Kategori_Keterangan kita akan mendapatkan string 'Main Income', dan yang tidak memenuhi kriteria tersebut akan berisikan 'Others Income'.

Other case:

CASE
WHEN tag.tag_jenis = 'BFR' THEN nama
WHEN tag.tag_jenis like 'DP%' THEN nama
WHEN tag.tag_jenis like 'ANG%' THEN nama
ELSE Target_Realisasi.jenis
END AS Keterangan
from tagihan tag,
(select tag.id, tag.jenis, unit.nama
from tagihan tag, pembayaran, unit) AS Target_Realisasi


Diatas kita bisa melihat kasus lain dimana yang kita tuliskan kedalam kolom baru yang kita buat bukanlah sebuah string melainkan data dari kolom lain yang kita ambil lewat query lain.


Other Case:

select tag.id, jenis,
sum (case when (DATEPART(month, tag.tgl_tagihan) + 1 = 4) then harga else null end) as Sales,
sum (case when (DATEPART(month, tag.tgl_tagihan) = 4)
and (DATEPART(day, tag.tag_tgl_tagihan) < 8)
then harga else null end) as Sales_Bulan_ini
from tagihan tag, unit un

Selain 2 contoh sebelumnya, CASE statement jg bisa digunakan dalam aggregate function, dalam contoh kali ini yang digunakan adalah function 'sum'.

Tidak ada komentar: