oracle数据库中有一类函数的用法比较通用,这类函数可以用在各个类型上,主要有nvl、nvl2、nullif、coalesce。其中,有些函数的用法和decode以及case比较相似,可以参考下博客中《举例总结oracle中case when then及decode用法》这篇文章。本文,总结一下这几个函数的用法。 (1)nvl
语法:nvl(expr1, expr2)
功能:如果expr1为null,则nvl函数返回expr2的值,否则返回expr1的值,如果两个参数都为null,则返回null。
(2)nvl2
语法:nvl2(expr1, expr2, expr3)
功能:如果expr1为null,则nvl2函数返回expr3的值;如果expr1的值不为null,则nvl2函数返回expr2的值。
(3)nullif 语法:nullif(expr1, expr2) 功能:如果expr1和expr2相等,则返回null;如果expr1和expr2不想等,则返回第一个值expr1。
(4)coalesce
语法:coalesce(expr1, expr2, expr3, ..., expr n) 功能:按照顺序,返回参数列表中的第一个不为null的值。例如,假如expr1不为空,则返回expr1;加入expr1为空,expr2不为空,则返回expr2,以此类推。如果参数都是null,则返回null。 图1:报错数据类型不一致 上面的几个函数都很好理解,有一个地方需要注意,就是参数列表中的参数expr,需要保证为同一类型,不然可能会报类似上图1中的那种错误,这个在使用的时候注意下。
|