Home > Mysql > Penggunaan CASE WHEN Dalam Query

Penggunaan CASE WHEN Dalam Query


Dahulu saya sering sekali menggunakan switch case setelah hasil fetching array sebuah query untuk memberikan keterangan bahwa pembelanjaan si member A adalah New, Maintenance, atau Upgrade. Hal ini terjadi ketika membuat program laporan penjualan member dimana ada kasus tipe pembelanjaan dibagi menjadi 3 model yaitu, New, Maintenance, dan Upgrade.

Misal Contoh Penggunaan Switch Case setelah hasil Query :
$t=mysql_query(‘SELECT Kode_Transaksi,Tipe_Penjualan FROM sales_h’);
while ($r=mysql_fetch_array($t)){
switch ($r[Tipe_Penjualan]){
case ‘N’ :
$ket = ‘New’;
break:
case ‘U’ :
$ket = ‘Upgrade’;
break:
case ‘M’ :
$ket = ‘Maintenance’;
break:
}}

Penggunaan SWICTH CASE diatas tidaklah salah, namun kurang efektif, ada cara yang lebih  efektif dan efisien yaitu pengkondisian langsung terjadi di perintah querynya, yaitu dengan penggunaan CASE WHEN. Konsepnya sama seperti SWITCH CASE tadi.

Perintah diatas bisa kita persingkat menjadi seperti ini:
$t=mysql_query(‘ SELECT Kode_Transaksi, CASE Tipe_Transaksi WHEN “N” THEN “New” WHEN “U” THEN “Upgrade” ELSE “Repeat Order” END “KETERANGAN” ‘);
while($r=mysql_fetch_array($t){
echo $r[KETERANGAN];
}

Penjelasan :
Terlihat ada pengkondisian di querynya, yaitu penulisan CASE Tipe_Transaksi WHEN “N” THEN “New” WHEN “U” THEN “Upgrade” ELSE “Repeat Order” END “KETERANGAN”. Perintah ini berarti mengkondisikan Jika Tipe_Transaksi bernilai N maka KETERANGAN adalah New dst. KETERANGAN adalah variable yang menampung hasil pengkondisian tersebut. Sehingga pemanggilannya cukup dengan menuliskan echo $r[KETERANGAN], tanpa menuliskan switch case lagi. Lebih Efisien kan ??

Semoga Bermanfaat

Categories: Mysql Tags:
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: