NVL函数
语法
NVL(expr1, expr2)
复制
用途
简单来说,就是用于替换字段的null值;
- 如果expr1为空,则nvl函数返回expr2的值;
- 如果expr1不为空,则nvl返回expr1的值;
例子
以官方文档为例,当COMMISSION字段为空时,COMMISSION的值显示为Not Applicable
SELECT last_name, NVL(TO_CHAR(commission_pct), 'Not Applicable') "COMMISSION" FROM employees WHERE last_name LIKE 'B%' ORDER BY last_name; LAST_NAME COMMISSION ------------------------- ---------------------------------------- Baer Not Applicable Baida Not Applicable Banda .1 Bates .15 Bell Not Applicable Bernstein .25 Bissot Not Applicable Bloom .2 Bull Not Applicable
复制
注意事项
- 如果expr1为字符型,expr2非字符型时,oracle会先将expr2转换为字符型,再返回expr1的值;
- 如果expr1是数值型的,那么Oracle将确定哪个参数的数值优先级最高,然后隐式地将另一个参数转换为该数据类型,并返回该数据类型。
例如:当expr1为数值型,expr2为字符串类型,则隐式转换expr2为数值型,如果无法转换,则会报错:
SQL> select nvl(1,'2') from dual; NVL(1,'2') ---------- 1 SQL> select nvl(1,'test') from dual; select nvl(1,'test') from dual * ERROR at line 1: ORA-01722: invalid number
复制
所以,使用NVL函数,要尽量保证两个参数的数据类型一致;
参考文档
- https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions105.htm
- https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements001.htm#i156865
最后修改时间:2021-08-16 20:49:03
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
694次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
635次阅读
2025-04-15 17:24:06
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
547次阅读
2025-04-20 10:07:02
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
494次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
490次阅读
2025-04-22 00:20:37
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
481次阅读
2025-04-22 00:13:51
一页概览:Oracle GoldenGate
甲骨文云技术
470次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
418次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
372次阅读
2025-04-15 14:48:05
OR+DBLINK的关联SQL优化思路
布衣
358次阅读
2025-05-05 19:28:36