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.
DECODE juga dapat digunakan bertingkat (Decode dalam Decode) seperti IF THEN ELSE yang bertingkat.
ingin tanya,bagaimana jika else-nya menggunakan nilai dari kolom lain pada satu table
ReplyDeletemaaf sebelumnya, karena sudah lama tidak online
Deleteuntuk nilai ELSEnya bisa diisi langsung dari kolom yang mana saja yang tersedia