函数声明:nvl(col,val)
说明:当col为空时取val作为返回值,当col不为空时取col值。
作用:最主要是数据格式化,如计算金额,不想出现空数据(计算过程 两个参数有一个为空null,都会丢失结果集~返回空)。null值+,-,*,/数字等于null,导致结果集丢失返回空 ,所以在表达式中对可能为空的值要使用用nvl解决空值问题。。
反例:
两个字段( v."SETTLEMENT_MONEY", v."REFUND_MONEY") 做减法
如第四条数据 SETTLEMENT_MONEY =200 REFUND_MONEY=0 肯定是得不到结果集
如下:
正例: nvl(col,val)函数使用
select v.SETTLEMENT_MONEY, v.REFUND_MONEY, nvl(v."SETTLEMENT_MONEY", 0) - nvl(v."REFUND_MONEY", 0) TOTAL from CUSTOM_BILL v
结果集如下: nvl(v."SETTLEMENT_MONEY", 0) - nvl(v."REFUND_MONEY", 0) TOTAL
当SETTLEMENT_MONEY为空时取0作为返回值,当SETTLEMENT_MONEY不为空时取SETTLEMENT_MONEY值。