度量快速开发平台-专业、快速的软件定制快开平台

标题: oracle数据库中的nvl、nvl2、nullif、coalesce用法小结 [打印本页]

作者: 陈晓龙    时间: 2020-6-11 14:39
标题: 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中的那种错误,这个在使用的时候注意下。



作者: 张兴康    时间: 2020-6-11 14:48
第3/4还没怎么用过呢
作者: 陈晓龙    时间: 2020-6-12 14:49
张兴康 发表于 2016-7-11 14:48
第3/4还没怎么用过呢

多学习!
作者: 张兴康    时间: 2020-6-12 15:34
陈晓龙 发表于 2016-7-12 14:49
多学习!

有实例么?
作者: 陈晓龙    时间: 2020-6-13 14:29
张兴康 发表于 2016-7-12 15:34
有实例么?

有,但不给你看!
作者: 张兴康    时间: 2020-6-13 15:11
陈晓龙 发表于 2016-7-13 14:29
有,但不给你看!


作者: 张兴康    时间: 2020-6-13 15:11
陈晓龙 发表于 2016-7-13 14:29
有,但不给你看!






欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://bbs.delit.cn/) Powered by Discuz! X3.2