Oracle数字数据类型的等效NVL

b00*_*rrl 2 sql oracle

对于数字数据类型,Oracle等价的NVL是什么?

这是有效的,因为数据类型是VARCHAR:

    select nvl(enrol.OUAC_APPLNO, 'blank') Invalid_OUAC_APPLNO

但是这不起作用,因为数据类型是NUMBER:

    select nvl(enrol.ouac_type_id, 'blank') REGTYP

Ben*_*Ben 5

没有等效的,没有Oracle函数会接受这个(除了DECODE()但不要这样做); 你将不得不将你的号码转换成一个角色:

select nvl(cast(enrol.OUAC_APPLNO as varchar2(10)), 'blank') 
Run Code Online (Sandbox Code Playgroud)

您可能需要根据需要更改要转换的字符数.

但是,我不知道你为什么要这样做.根据定义,NULL意味着不存在.如果要显示blank以便赋予不存在,那么您应该使用表示层而不是数据库.