Oracle中nvl()和nvl2()函数实例详解


本篇文章给大家带来了关于oracle的相关知识,nvl函数的功能是实现空值的转换,根据第一个表达式的值是否为空值来返回响应的列名或表达式,下面这篇文章主要给大家介绍了关于oracle中nvl()和nvl2()函数的相关资料,希望对大家有帮助。

Oracle中nvl()和nvl2()函数实例详解

推荐教程:《Oracle视频教程》

Oracle中nvl()与nvl2()函数详解:

  • 函数nvl(expression1,expression2)根据参数1是否为null返回参数1或参数2的值;
  • 函数nvl2(expression1,expression2,expression3)根据参数1是否为null返回参数2或参数3的值。

1.nvl:根据参数1是否为null返回参数1或参数2的值

【函数格式】:nvl(expression1,expression2)

【函数说明】:

  • 若expression1值为null,则该函数返回expression2;
  • 若expression1值不为null,则该函数返回expression1;
  • 若expression1、expression2的值均为null,则该函数返回null。

【特别说明】:参数expression1和expression2可以是字符型、数字型或日期型,但参数expression1与expression2的类型必须一致。

【样例展示一】:expression1值为null:

expression2为字符型:

select nvl(null,'ABCD') from dual;        --返回:ABCD
select nvl(null,'abcd') from dual;        --返回:abcd
select nvl(null,'12345') from dual;        --返回:12345

expression2为数值型:

select nvl(null,12345) from dual;        --返回:12345
select nvl(null,00000) from dual;        --返回:0
select nvl(null,-12345) from dual;        --返回:-12345
select nvl(null,123.45) from dual;        --返回:123.45
select nvl(null,-123.45) from dual;        --返回:-123.45

expression2为日期时间型:

select nvl(null,sysdate) from dual;        --返回:2025/2/25 11:54:18
select nvl(null,to_date('2025/2/25 11:54:18','yyyy-mm-dd hh24:mi:ss')) from dual;                        --返回:2025/2/25 11:54:18
select nvl(null,to_date('2025/2/25','yyyy-mm-dd')) from dual;        --返回:2025/2/25
select nvl(null,to_date('2025','yyyy')) from dual;        --返回:2025/2/1

【样例展示二】:expression1值不为null:

expression1为字符型:

select nvl('ABCD','abcd') from dual;        --返回:ABCD
select nvl('abcd','ABCD') from dual;           --返回:abcd
select nvl('12345','54321') from dual;        --返回:12345

expression1为数值型:

select nvl(12345,null) from dual;        --返回:12345
select nvl(00000,11111) from dual;        --返回:0
select nvl(-12345,null) from dual;        --返回:-12345
select nvl(123.45,-123.45) from dual;        --返回:123.45
select nvl(-123.45,123.45) from dual;        --返回:-123.45

expression1为日期时间型:

select nvl(sysdate,null) from dual;        --返回:2025/2/25 12:18:23
select nvl(to_date('2025/2/25 12:18:23','yyyy-mm-dd hh24:mi:ss'),null) from dual;                        --返回:2025/2/25 12:18:23
select nvl(to_date('2025/2/25','yyyy-mm-dd'),null) from dual;        --返回:2025/2/25
select nvl(to_date('2025','yyyy'),null) from dual;        --返回:2025/2/1

【样例展示三】:expression1、expression2值均为null:

select nvl(null,null) from dual;        --返回空值
select nvl('',null) from dual;        --返回空值
select nvl(null,'') from dual;        --返回空值
select nvl('','') from dual;        --返回空值

2.nvl2:根据参数1是否为null返回参数2或参数3的值

【函数格式】:nvl2(expression1,expression2,expression3)

动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版 动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版

动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联J*aScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR*函数库的强大功能,对常用的、强大的包

动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版 508 查看详情 动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版

【函数说明】:

  • 若expression1值不为null,则该函数返回expression2值;
  • 若expression1值为null,则该函数返回expression3值;
  • 若expression1、expression2、expression3值均为null,则该函数返回null。

【特别说明】:

  • expression1的类型不需要与expression2和expression3的类型保持一致;
  • expression2与expression3的类型尽量保持一致,若不一致,当expression1为null时,则expression3会自动转换为expression2的类型,若两个数据类型之间无法转换,则会报错。

【样例展示一】:expression1值不为null:

expression2和expression3均为字符型:

select nvl2(0,'ABCD','abcd') from dual;        --返回:ABCD
select nvl2('a','ABCD','1234') from dual;        --返回:ABCD
select nvl2(sysdate,'1234','abcd') from dual;        --返回:1234

expression2和expression3均为数值型:

select nvl2(0,12345,54321) from dual;        --返回:12345
select nvl2('a',123.45,543.21) from dual;        --返回:123.45
select nvl2(sysdate,-12345,-54321) from dual;        --返回:-12345

expression2和expression3数据类型不一致:

        注意:此时expression1有值,因此该函数直接返回expression2的值,即使expression3的类型无法转换为expression2的类型也不会报错。

select nvl2(0,'ABCD',54321) from dual;        --返回:ABCD
select nvl2('a','abcd',543.21) from dual;        --返回:abcd
select nvl2(sysdate,'12345',-54321) from dual;        --返回:12345

【样例展示二】:expression1值为null:

expression2和expression3均为字符型:

select nvl2(null,'ABCD','abcd') from dual;        --返回:abcd
select nvl2('','ABCD','1234') from dual;        --返回:1234

expression2和expression3均为数值型:

select nvl2(null,12345,54321) from dual;        --返回:54321
select nvl2('',123.45,543.21) from dual;        --返回:543.21

expression2和expression3数据类型不一致:

        注意:此时expression1值为null,因此该函数会返回expression3的值,若expression3的类型无法转换为expression2的类型,则会报错。

select nvl2(null,'ABCD',54321) from dual;        --返回:54321
select nvl2('','abcd',543.21) from dual;        --返回:543.21
select nvl2('',543.21,'abcd') from dual;        --执行报错
select nvl2(null,'abcd',sysdate) from dual;        --返回:25-2月 -22
select nvl2(null,sysdate,'abcd') from dual;        --执行报错

【样例展示三】:expression1为null,且expression2或expression3值为null:

select nvl2(null,null,'123') from dual;        --返回:123
select nvl2(null,'abc',null) from dual;        --返回:空值
select nvl2(null,null,null) from dual;        --返回:空值
select nvl2('','','') from dual;        --返回:空值

推荐教程:《Oracle视频教程》

以上就是Oracle中nvl()和nvl2()函数实例详解的详细内容,更多请关注其它相关文章!


# 怎么看  # 新网站刚开始怎么优化好  # 佛山网站优化服务器  # 江油网站关键词推广  # 网络关键词排名  # 桂林网站优化厂家排名  # 花莲网站推广  # 邯郸seo关键词  # 360推广后台网站  # 大理全渠道营销推广方案  # 德阳网站推广软件  # oracle  # 给大家  # 转换为  # 默认值  # 样例  # 不为  # 则该  # 报错  # 值为  # 均为 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894 】


相关推荐: 《东方财富》条件单关闭方法  Lar*el Eloquent:高效删除多对多关系中无关联子记录的父模型  php如何实现多域名共享session_php存储session到redis与跨域读取配置  《火影忍者:木叶高手》快速升级攻略  Go语言反射机制下访问嵌入结构体中的被遮蔽方法  优化CSS动画与J*aScript定时器协同:构建稳定Toast提示  睡觉时心跳快是什么原因 夜间心悸如何应对  使用AI在VS Code中将代码从一种语言翻译成另一种  Animex动漫社社登录官网 Animex动漫社资源社入口直达  优酷下载视频的清晰度怎么选_优酷缓存清晰度设置与选择指南  抖音如何进行蓝V认证 抖音企业号申请所需资料与流程  j*a中赋值运算符是什么?  自定义你的VS Code状态栏,监控关键信息  C#中的Record类型有什么优势?C# 9新特性Record与Class的用法区别  PSD转AI文件的简单方法  windows10怎么关闭自动安装应用_windows10禁止推广应用下载  抖音团长模式怎么做?团长模式是什么意思?  ExcelSCAN与LAMBDA如何创建自定义移动平均函数_SCAN实现任意窗口期移动平均计算  京东快递物流信息不更新怎么办_物流停滞原因与处理方法  《下一站江湖2》风神腿获取攻略  智云Q3和Q2有什么升级_智云Q3与Q2手持云台功能与性能对比分析  《宝可梦大集结》S4冠军之路开始时间介绍  Fedora怎么安装 Fedora Workstation安装步骤  解决Pandas DataFrame高度碎片化警告:高效创建多列的策略  PHP中获取HTTP响应状态消息:方法与限制  Python中处理嵌套字典与列表的数据提取与过滤教程  《领英》查看屏蔽名单方法  如何在Python中安全地将环境变量转换为整数并满足Mypy类型检查  sublime如何自定义文件类型图标_AFileIcon插件的主题切换与个性化配置  cad视图选项卡不见了怎么办_cad视图标签恢复显示方法  excel怎么制作考勤表 excel考勤模板与函数公式讲解  解决CSS background 属性中 cover 关键字的常见误用  利用Flexbox实现图片元素的二维布局:2x2网格排列指南  人教版电子教材在线获取指南  教资成绩怎么查询  使用Python和GBGB API高效抓取指定日期范围和赛道比赛结果教程  iPhone14开启Apple TV遥控设置  《知到》打卡课程方法  拷贝漫画2025网页版入口 拷贝漫画官网免费看全集  mysql镜像配置如何设置用户权限组_mysql镜像配置用户组与权限分级管理方法  iphone16系列配置参数介绍  Lar*el Eloquent中通过Join查询关联数据表:解决多行子查询问题  Python中对象引用与链表属性赋值的机制解析  C#解析来自网络的XML流数据 实时错误处理与重试机制  Win10截图远程协助 Win10远程桌面截屏法【场景应用】  太平年在哪个平台播出  windows server2019显卡驱动怎么安装_winserver2019显卡驱动安装与远程桌面优化  byrutor直接访问入口 byrutor官方游戏库  发博客与长微博技巧  《大周列国志》皇帝律令功能介绍 

 2022-08-15

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.