当前位置: 代码网 > it编程>数据库>MsSqlserver > SQL中NVL()函数的用法

SQL中NVL()函数的用法

2024年05月26日 MsSqlserver 我要评论
sql中的nvl()函数是一个空值转换函数,其语法为:nvl(expr1, expr2)。如果expr1为空值,则nvl()函数返回expr2的值,否则返回expr1的值。该函数的目的是将空值转换为实

sql中的nvl()函数是一个空值转换函数,其语法为:nvl(expr1, expr2)。如果expr1为空值,则nvl()函数返回expr2的值,否则返回expr1的值。该函数的目的是将空值转换为实际的值。expr1和expr2的数据类型必须为同一类型,可以是数字型、字符型和日期型。

以下是一些nvl()函数的例子:

  • 对于数字型:nvl(comm, 0),如果comm为空值,则返回0,否则返回comm的值。
  • 对于字符型:nvl(to_char(comm), ‘no commission’),如果comm为空值,则返回字符串’no commission’,否则返回comm的字符串值。
  • 对于日期型:nvl(hiredate, ‘31-dec-99’),如果hiredate为空值,则返回日期’31-dec-99’,否则返回hiredate的日期值。

除了nvl()函数外,sql还有一个类似的函数nvl2(),其语法为:nvl2(expr1, expr2, expr3)。如果expr1为空值,则返回expr3的值,否则返回expr2的值。

以下是一个nvl2()函数的例子:

  • nvl2(comm, ‘sal+comm’, sal),如果comm为空值,则返回sal的值,否则返回sal+comm的值。

例子:

select   ename,nvl(to_char(comm), ename||' is not a salesperson!') as commission from emp 

sql中nvl和nvl2的区别

nvl(表达式1,表达式2)

如果表达式1为空值,nvl返回值为表达式2的值,否则返回表达式1的值。该函数的目的是把一个空值(null)转换成一个实际的值。其表达式的值可以是数字型、字符型和日期型。但是表达式1和表达式2的数据类型必须为同一个类型

nvl2(表达式1,表达式2,表达式3)

如果表达式1为空,返回值为表达式3的值。如果表达式1不为空,返回值为表达式2的值

select '' from dual;
--结果: ''
select nvl('',0) from dual;
--结果: 0
select nvl2('','1','2') from dual;
--结果:2
select nvl2('0','1','2') from dual;
--结果:1

到此这篇关于sql中nvl()函数的用法的文章就介绍到这了,更多相关sql nvl()函数内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com