oracle数据库中的nvl、nvl2、nullif、coalesce用法小结

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中的那种错误,这个在使用的时候注意下。

本文标题:oracle数据库中的nvl、nvl2、nullif、coalesce用法小结

本文链接:http://yedward.net/?id=178

本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处。

相关文章