首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle中的NVL和NVL2函数是什么?它们有什么不同?

问Oracle中的NVL和NVL2函数是什么?它们有什么不同?
EN

Stack Overflow用户
提问于 2016-04-29 18:43:19
回答 3查看 17.1K关注 0票数 6

我正在寻找这些函数的简单示例的详细答案。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-29 19:44:49

NVL检查第一个参数是否为null并返回第二个参数:

代码语言:javascript
复制
select nvl(null, 'arg2') from dual

在本例中,结果将是: arg2;

代码语言:javascript
复制
select nvl('arg1', 'arg2') from dual

在这个例子中: arg1;

NVL2具有不同的逻辑。如果第一个参数不为空,则NVL2返回第二个参数,但在其他情况下,它将返回第三个参数:

代码语言:javascript
复制
select nvl2('arg1', 'arg2', 'arg3') from dual

结果: arg2

代码语言:javascript
复制
select nvl2(null, 'arg2', 'arg3') from dual

结果: arg3

票数 22
EN

Stack Overflow用户

发布于 2020-06-23 22:45:02

NVL( exp1,exp2)和NVL2(exp1,exp2,exp3)函数都会检查值exp1是否为null。

使用NVL( exp1,exp2)函数,如果exp1不是null,则返回exp1的值;否则,返回exp2的值,但大小写与exp1的数据类型相同。

使用NVL2( exp1,exp2,exp3)函数,如果exp1不为null,则返回exp2;否则,返回exp3的值。

票数 0
EN

Stack Overflow用户

发布于 2021-06-28 09:26:44

Nvl(arg1,arg2) nvl用于转换空值。在nvl中,如果参数1为空,则返回参数2,但参数1不为空,则返回自身。在nvl2的nvl2 (arg1,arg2,arg3)中,它将任何数字转换成根据给定数字的空值。如果给定数字的参数1为null,则返回arg3;另一方面,如果不为null,则返回参数2

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36936245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档