Friday, June 5, 2009

NVL2

ID adi
---- ----------
01 ALi
02 mehmet
03 rafer
04 hasan
05
06 huseyin
07
08

Orijinal bişeyler yapmak mümkün bunun ile. var yok olayında eğer var ise şu an çalişiyor null ise de tembel tembel yatıyor gibi değerler üretilebilir.

NVL2(x, value1, value2) burada x değeri var ise value 1 yok(null) ise value 2 doner

SELECT id, NVL2(adi, 'var', 'yok') FROM isim_liste;

ID NVL2(FI
---- -------
01 var
02 var
03 var
04 var
05 yok
06 var
07 yok
08 yok

Model ile kullanımı

variable v_first_key number
variable v_last_key number
variable v_increment number

execute :V_FIRST_KEY := 1
execute :V_LAST_KEY := 5
execute :V_INCREMENT := 2

select key, integer_value
from dual
where 1=2
model
dimension by ( 0 as key )
measures ( 0 as integer_value )
rules upsert
( integer_value[ for key from :V_FIRST_KEY to :V_LAST_KEY increment 1 ]
= nvl2( integer_value[cv()-1], integer_value[cv()-1] + :V_INCREMENT, cv(key) )
)
;
KEY INTEGER_VALUE
---------- -------------
1 1
2 3
3 5
4 7
5 9

No comments: