SQL中NVL()函数的用法
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()函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
使用SqlBulkCopy时应注意Sqlserver表中使用缺省值的列
今天,想将以前做的一个程序增加点功能,原本就使用SqlBulkCopy批量、定时的从目录中的txt文件导入数据到Sqlserver中。以前一直都使用正常,但是不知怎的就老是出现一个错误2012-07-07insert into select和select into的使用和区别介绍
insert into ... select 和 select ... into的使用上有哪些区别呢?在本文将为大家下详细介绍下,不知道的朋友可以了解下2013-09-09SQL Server2022安装提示"安装程序在运行作业UpdateResult时失败"解决方法
平时大家在安装数据库的时候,我也相信大家会遇到过一些报错导致安装失败,下面这篇文章主要给大家介绍了关于SQL Server2022安装提示"安装程序在运行作业UpdateResult时失败"的解决方法,需要的朋友可以参考下2023-05-05
最新评论