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?

questionAnswers(4)

yourAnswerToTheQuestion