Oracle’ın Built-in fonksiyonu olan Coalesce maalesef çok fazla bilinmiyor. En basit tarif ile “Değer NULL ise yanındaki sağındaki değere bak” söyliyebilirim. Bu fonksiyonu iç içe geçmiş NVL,DECODE yerine kullanılabilir. Bu fonksiyon bilinmediği zaman okunması zor olan kodlar ortaya çıkıyor.
SELECT COALESCE(null,null,’dolu’,null,’dolu2′,null) FROM dual;
Dönen değer: “dolu” olacaktır.
Basit bir örnek vermek gerekir ise:
Test için örnek data:

Örnek Kod ( script aşağıda)
SELECT 1 as ID, NULL sutun1, NULL sutun2, NULL sutun3, NULL sutun4, 'veri5' sutun5, 'veri6' sutun6 FROM dual

SELECT id, NVL(NVL(NVL(NVL(NVL(sutun1,sutun2),sutun3),sutun4),sutun5),sutun6) AS NVL_YONTEMI, COALESCE(sutun1,sutun2,sutun3,sutun4,sutun5,sutun6) AS COALESCE_YONTEMI FROM ( SELECT 1 as ID, NULL sutun1, NULL sutun2, NULL sutun3, NULL sutun4, 'veri5' sutun5, 'veri6' sutun6 FROM dual )
Coalesce içine N adet parametre alabilir.
Özellikle 3 ve yukarı değişken kontrole edecekseniz, NVL, DECODE, CASE WHEN vs yerine bunu kullanın. Aksi halde bi noktadan sonra kodun okunurluğu azalıyor.
Girdiğiniz parametrelerin veri tipi aynı olması gerekiyor veya implict dönüşüm yapabilyor olması gerekir.