oracle的nvl()函数作用是当第一个值不为null时,返回第一个值,否则返回第二个值。
当第一个值为一个运算表达式时,那么第二个的值被限定为只能是NUMBER类型或者能隐式转换为NUMBER类型的值,
否则会报“无效数字的”错误。举例如下:
1 SELECT NVL(1*NULL,'111E') from dual
--运行结果报错:“无效数字”
1 SELECT NVL(1*NULL,'111') from dual
运行结果如下:
如果当计算结果为null时,想要返回一个字符串类型的数据,可以用decode函数
1 SELECT decode(1*NULL,NULL,'111E',1*NULL) VALUE from dual
运行结果: