September 3, 2010

Decode pengganti If Then Else

Fungsi DECODE pada Oracle Sql memiliki algoritma yang sama dengan proses IF THEN ELSE, hanya saja DECODE dapat digunakan pada perintah sql tidak seperti IF THEN ELSE yang hanya ditulis pada pl/sql. Jadi dapat dikatakan bahwa fungsi ini digunakan untuk memberikan nilai penganti. Kita lihat contoh berikut ini :

Tabel Departemen, pada kolom Kota
Kota
-----------
Jakarta
Banten
Surabaya
Banyuwangi
Denpasar




select kota,
     , DECODE (kota,
               'Jakarta', 'Barat',
               'Banten', 'Barat',
               'Surabaya', 'Timur',
               'Banyuwangi', 'Timur', 'Yang Lain') 
       as kelompok
  from kota;

KOTA       KELOMPOK
---------- ---------
Jakarta    Barat
Banten     Barat
Surabaya   Timur
Banyuwangi Timur
Denpasar   Yang Lain

Dilihat dari contoh tersebut maka dapat dikatakan bahwa, jika kolom kota yang berisi Jakarta maka akan memiliki nilai Barat pada kolom kelompok, begitu juga untuk Banten, Surabaya dan Banyuwangi, sedangkan untuk Denpasar karena tidak didefinisikan maka nilai pada kolom kelompoknya adalah Yang Lain (ini adalah nilai ELSE).


DECODE juga dapat digunakan bertingkat (Decode dalam Decode) seperti IF THEN ELSE yang bertingkat.

2 comments:

  1. ingin tanya,bagaimana jika else-nya menggunakan nilai dari kolom lain pada satu table

    ReplyDelete
    Replies
    1. maaf sebelumnya, karena sudah lama tidak online
      untuk nilai ELSEnya bisa diisi langsung dari kolom yang mana saja yang tersedia

      Delete