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()函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
安装sqlserver2000时出现wowexec.exe无反应的解决方法
wowexec.exe是操作系统相关程序,用于支持16位进程,而wowexec 或者 wowexec.exe则是当硬盘上的文件碎片过多时,系统自动进行碎片整理2013-04-04
SQL Server中使用SQL语句实现把重复行数据合并为一行并用逗号分隔
这篇文章主要介绍了SQL Sever中使用SQL语句实现把重复行数据合并为一行并用逗号分隔,本文给出了两种实现方式,需要的朋友可以参考下2015-02-02
一次SQL查询优化原理分析(900W+数据从17s到300ms)
本文主要介绍了一次SQL查询优化原理分析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-06-06
SQL中Group分组获取Top N方法实现可首选row_number
统计每个城市的最新10个产品本文采用了游标方法/Count查询/cross apply方法/row_number方法等等对比不难发现Group获取Top N场景时,可以首选row_number,游标cursor其次,另外两个就基本不考虑了2013-03-03


最新评论