Oracle中NVL、NVL2、NULLIF 三个函数的区别?
首先说明:NULL指的是空值,或者非法值。
1、NVL (expr1, expr2)
expr1为NULL,返回expr2;不为NULL,返回expr1。注意两者的类型要一致
2、NVL2 (expr1, expr2, expr3)
expr1不为NULL,返回expr2;为NULL,返回expr3。expr2和expr3类型不同的话,expr3会转换为expr2的类型
3、NULLIF (expr1, expr2)
相等返回NULL,不等返回expr1
总结一下:
NVL 的目的是:如果为空,则指定一个值。
NVL2 的目的是:如果不为空,则指定一个值;为空则指定另一个值。
NULLIF 的目的是:如果等于某个值则按空处理。
特此笔记,以免忘记。