DECODE : decode( expression , search , result [, search , result]… [, default] ) fonksiyonu if-then-else kullanımına karşılık gelir.CASE .. WHEN ifadesinin aynısıdır. Amaç daha okunabilir kod yazmak olabilir.
SQL> select * from birimler;
BIRIM_KODU…… BIRIM_ADI
———————- —————
14199…….. dahiliye
22897…….. cildiye
SQL> select * from muayene;
BIRIM_KODU…… TARIH
———————- —————
14199 …….. 31-MAY-08
22897 …….. 30-MAY-08
SQL> SELECT m.tarih, MAX (DECODE (b.birim_adi, ‘dahiliye’, 1, 0)) dahiliye,
2 MAX (DECODE (b.birim_adi, ‘cildiye’, 1, 0)) cildiye
3 FROM birimler b, muayene m
4 WHERE b.birim_kodu = m.birim_kodu
5 GROUP BY m.tarih;
TARIH……. DAHILIYE……… CILDIYE
—————– ————— —————-
30-MAY-08………… 0 …………….. 1
31-MAY-08………… 1 …………….. 0
Buradaki max ifadelerini birim sayisina gore ayarlayabiliriz.