就是一个空值判断的函数,相当于if...else...,如果变量为null,则取后面的值,不为空,则取变量的值。
NVL 是一个函数, 后面跟 2 个参数
返回值:
如果第一个参数 非空, 那么直接返回第一个参数, 忽略第二个参数。
如果第一个参数 是 空( IS NULL), 那么返回第二个参数。
SQL> SELECT
2 NVL(sale_item, 'ALL') AS item,
3 SUM(sale_money) AS money
4 FROM
5 sale_report
6 GROUP BY
7 ROLLUP(sale_item);
ITEM MONEY
------ ----------
A 733285
B 2382
C 5738
ALL 741405
NVL(ARG,VALUE)达标如果前面的ARG值为NULL那么返回的值为后面的VALUE二者结合使用:
DECODE(NVL(M01.NINUSI_NM,''),'','-',M01.NINUSI_NM)
首先判断--若M01.NINUSI_NM是否为空.若为空赋给空值[NVL函数]
其次,判断取出的字段是否为空,如果是则赋给'-'
最后的默认处理是M01.NINUSI.NM。
oracle中的空值处理函数,例如 nvl(col,0)表示:如果col字段为空的话,则输出0