Dlaczego DECODE firmy Oracle daje mi inną wartość niż NVL?
To zapytanie:
select nvl(0.75,0) from dual
daje mi0.75
(numeryczne), ale to zapytanie:
select decode(1,0,null,0.75) from dual
daje mi'.75'
(strunowy).
Czemu?
Próbowałem to naprawić, zmieniając drugie zapytanie na:
select decode(1,0,null,to_char(0.75,'0.99')) from dual
ale w moim rzeczywistym kodzie 0.75 będzie polem (NUMBER), które może mieć inną liczbę miejsc po przecinku, a nie mam zamiaru dodawać / usuwać niczego z tej wartości.
Jakieś pomysły, jak naprawić brakujący problem zerowy, ale nadal obsługiwać wszystkie możliwe długości dziesiętne?