Почему Oracle DECODE дает мне значение, отличное от NVL?

Этот запрос:

select nvl(0.75,0) from dual

дает мне0.75 (числовой) но этот запрос:

select decode(1,0,null,0.75) from dual 

дает мне'.75' (Строка).

Зачем?

Я попытался исправить это, изменив второй запрос на:

select decode(1,0,null,to_char(0.75,'0.99')) from dual

но в моем действительном коде 0,75 будет полем (НОМЕР), которое может иметь различное количество десятичных знаков, и я 'Я не должен добавлять / удалять что-либо из этого значения.

Любые идеи о том, как исправить пропущенную нулевую проблему, но все еще поддерживают все возможные десятичные длины?

Ответы на вопрос(4)

Ваш ответ на вопрос