当前位置: 首页 > news >正文

13.Oracle中nvl()与nvl2()函数详解

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;        --返回:2022/2/25 11:54:18
select nvl(null,to_date('2022/2/25 11:54:18','yyyy-mm-dd hh24:mi:ss')) from dual;        --返回:2022/2/25 11:54:18
select nvl(null,to_date('2022/2/25','yyyy-mm-dd')) from dual;        --返回:2022/2/25
select nvl(null,to_date('2022','yyyy')) from dual;        --返回:2022/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;        --返回:2022/2/25 12:18:23
select nvl(to_date('2022/2/25 12:18:23','yyyy-mm-dd hh24:mi:ss'),null) from dual;            --返回:2022/2/25 12:18:23
select nvl(to_date('2022/2/25','yyyy-mm-dd'),null) from dual;        --返回:2022/2/25
select nvl(to_date('2022','yyyy'),null) from dual;        --返回:2022/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)

若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
 

相关文章:

13.Oracle中nvl()与nvl2()函数详解

Oracle中nvl()与nvl2()函数详解: 函数nvl(expression1,expression2)根据参数1是否为null返回参数1或参数2的值; 函数nvl2(expression1,expression2,expression3)根据参数1是否为null返回参数2或参数3的值 1.nvl:根据参数1是否为null返回参数…...

设置某行被选中并滚动到改行

<el-table :data"tableDamItem" ref"singleTable" stripe style"width: 100%" height"250" highlight-current-row v-on:row-click"handleTableRow"></el-table>/*** 设置表格行被选中,并滚动到该行* param po…...

React钩子函数之useRef的基本使用

React钩子函数中的useRef是一个非常有用的工具&#xff0c;它可以用来获取DOM元素或者保存一些变量。在这篇文章中&#xff0c;我们将会讨论useRef的基本使用。 首先&#xff0c;我们需要知道useRef是如何工作的。它返回一个可变的ref对象&#xff0c;这个对象可以在组件的整个…...

无风扇迷你电脑信息与购买指南

本文将解释什么是无风扇迷你电脑&#xff0c;以及计算产品组合中你可以购买的一些不同的无风扇迷你电脑的信息指南。 无风扇迷你电脑是一种小型工业计算机&#xff0c;旨在处理复杂的工业工作负载。迷你电脑是通过散热器被动冷却可在各种类型的易失性环境中部署。无风扇微型计…...

比特币是怎么回事?

比特币是怎么回事&#xff1f; 一句话描述就是&#xff0c;初始化几个比特币&#xff0c;申请成为矿工组织&#xff0c;发生交易时抢单记账成功可以比特币奖励&#xff0c;随着比特币数量的增加&#xff0c;奖励越来越少。怎么记账成功呢&#xff0c;通过交易信息幸运数字哈希…...

vue3+ts+uniapp小程序端自定义日期选择器基于内置组件picker-view + 扩展组件 Popup 实现自定义日期选择及其他选择

vue3ts 基于内置组件picker-view 扩展组件 Popup 实现自定义日期选择及其他选择 vue3tsuniapp小程序端自定义日期选择器 1.先上效果图2.代码展示2.1 组件2.2 公共方法处理日期2.3 使用组件 3.注意事项3.1refSelectDialog3.1 backgroundColor"#fff" 圆角问题 自我记…...

Java进阶篇--泛型

前言 Java 泛型&#xff08;generics&#xff09;是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制&#xff0c;该机制允许程序员在编译时检测到非法的类型。它允许在定义类、接口和方法时使用类型参数。这种技术使得在编译期间可以使用任何类型&#xff0c;而…...

android framework之Applicataion启动流程分析

Application启动流程分析 启动方式一&#xff1a;通过Launcher启动app 启动方式二&#xff1a;在某一个app里启动第二个app的Activity. 以上两种方式均可触发app进程的启动。但无论哪种方式&#xff0c;最终通过通过调用AMS的startActivity()来启动application的。 根据上图…...

Linux Day10 ---Mybash

目录 一、Mybash介绍 1.1.mybash.c 打印函数 分割函数 命令函数 二、Mybash实现 2.1.打印函数 2.1.1需要使用到的功能函数 1.获取与当前用户关联的UID 2.获取与当前用户的相关信息---一个结构体&#xff08;passwd&#xff09; 3.获取主机信息 4.获取当前所处位置 5.给…...

Flask-Sockets和Flask-Login联合实现websocket的登录认证功能

flask_login 提供了一个方便的方式来管理用户会话。当你在 Flask 的 HTTP 视图中使用它时&#xff0c;你可以简单地使用 login_required 装饰器来确保用户已登录。 但是&#xff0c;flask_sockets 并没有直接与 flask_login 集成。如果你想在建立 WebSocket 连接时检查用户是否…...

东盟全面覆盖?长城战略部署核心区域市场,首个百万粉丝国产品牌

根据最新消息&#xff0c;长城汽车在东南亚地区取得了巨大的成功&#xff0c;成功进军了亚洲最大的汽车市场之一-印度尼西亚。这标志着长城汽车已经实现了东盟核心市场的全面覆盖&#xff0c;成为全球布局的重要一步。 在过去的几年里&#xff0c;长城汽车在东盟地区的市场布局…...

基于PHP的电脑商城系统

有需要请加文章底部Q哦 可远程调试 基于PHP的电脑商城系统 一 介绍 此电脑商城系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。用户可注册登录&#xff0c;购物下单&#xff0c;评论等。管理员登录后台对电脑商品&#xff0c;用户&#xff0c;订单&a…...

无客户端网络准入方案,为集成电路企业终端管理开启省事更省心模式

宁盾无客户端网络准入控制方案正在成为先进制造、高科技互联网企业等创新型客户的优选方案。创新型客户以技术密集型、研发人员占比高著称&#xff0c;在进行网络准入建设时&#xff0c;如何平衡好用户体验与顺利达成项目预期之间的矛盾&#xff0c;是创新企业 IT 安全团队格外…...

5G与4G的RRC协议之异同

什么是无线资源控制&#xff08;RRC&#xff09;&#xff1f; 我们知道&#xff0c;在移动通信中&#xff0c;无线资源管理是非常重要的一个环节&#xff0c;首先介绍一下什么是无线资源控制&#xff08;RRC&#xff09;。 手机和网络通过无线信道相互通信&#xff0c;彼此交…...

横扫“盲区”、“看透”缺陷,维视智造推出短波红外相机

在可见光领域&#xff0c;工业相机的视觉应用已经十分成熟&#xff0c;但在日常的客户咨询中&#xff0c;我们也经常接到一些“超纲需求”——客户想要检测“白底上的白色缺陷”、“不透明包装内的透明物体有无”等&#xff0c;均属于可见光无法实现的检测&#xff0c;而市面上…...

cgo踩坑:交叉编译过程出现的问题could not determine kind of name for C.XXX

尝试了网上的几种解决方法&#xff0c;都不行&#xff0c;现总结起来&#xff1a; 确认 /* #include <stdio.h> */ import "C"不要有空行 确认你引用的头文件存在&#xff08;stdio.h这种编译器自带的不需要你确认&#xff09; 如果引用了多个包&#xff0c…...

自然语言处理(NLP)技术的例子

以下是几个自然语言处理&#xff08;NLP&#xff09;技术的例子&#xff1a; 机器翻译&#xff1a;机器翻译是将一种自然语言的文本转换成另一种语言的文本的过程。这种技术应用于在线翻译器、多语言聊天机器人、多语言搜索引擎等地方。 文本分类&#xff1a;文本分类将文本分…...

Python“牵手”义乌购商品列表数据,关键词搜索义乌购API接口数据,义乌购API接口申请指南

义乌购平台API接口是为开发电商类应用程序而设计的一套完整的、跨浏览器、跨平台的接口规范&#xff0c;义乌购API接口是指通过编程的方式&#xff0c;让开发者能够通过HTTP协议直接访问义乌购平台的数据&#xff0c;包括商品信息、店铺信息、物流信息等&#xff0c;从而实现义…...

ip_vs 原理解析 (四)hook 后的开始 NF_INET_LOCAL_IN

文章目录 ip_vs hook 后NF_INET_LOCAL_IN 本章重点&#xff1a; k8s 如何利用 ip_vs 实现源 IP 会话亲和性。 ip_vs hook 后 NF_INET_LOCAL_IN 根据优先级依次是 ip_vs_reply4&#xff0c;ip_vs_remote_request4 ip_vs_reply4| -- ip_vs_out| -- skb_to_full_sk(skb&#xf…...

分布式之CAP理论与BASE理论

CAP理论 CAP:一致性&#xff08;consistency&#xff09;、可用性&#xff08;Availability&#xff09;、分区容错&#xff08;partition-tolerance&#xff09;。CAP定律说的是在一个分布式计算机系统中&#xff0c;一致性&#xff0c;可用性和分区容错性这三种保证无法同时…...

STM32F103C8T6接KY-9250陀螺仪,串口数据解析与姿态角计算全流程(附避坑点)

STM32F103C8T6与KY-9250陀螺仪实战&#xff1a;从硬件对接到姿态解算的完整指南 第一次拿到STM32开发板和KY-9250模块时&#xff0c;那种既兴奋又忐忑的心情记忆犹新——兴奋于即将实现酷炫的姿态检测功能&#xff0c;忐忑于不知从何下手的迷茫。本文将以手把手的方式&#xff…...

问题解决:AI股票分析师启动失败?自查脚本与Ollama服务加载

问题解决&#xff1a;AI股票分析师启动失败&#xff1f;自查脚本与Ollama服务加载 1. 引言 你满怀期待地部署了那个“AI股票分析师”镜像&#xff0c;点击启动&#xff0c;然后……页面一片空白&#xff0c;或者提示服务不可用。这种感觉就像准备大展拳脚时&#xff0c;发现工…...

OWL ADVENTURE Java面试题实战:手写一个简单的图像加载器

OWL ADVENTURE Java面试题实战&#xff1a;手写一个简单的图像加载器 最近在准备Java面试的朋友&#xff0c;是不是经常被问到IO、多线程这些基础&#xff1f;光背八股文总觉得心里没底。今天咱们换个玩法&#xff0c;不搞虚的&#xff0c;直接动手写一个能用在真实项目里的东…...

从桁架到螺栓:HM-3420在汽车后桥装配中的实战应用

HM-3420螺栓连接技术在汽车后桥装配中的创新实践 汽车后桥作为承载车身重量与传递动力的关键部件&#xff0c;其结构强度直接关系到整车安全性能。在传统装配工艺中&#xff0c;桁架连接往往面临应力集中、疲劳寿命不足等挑战。HM-3420螺栓连接系统的出现&#xff0c;为这一领域…...

香橙派OrangePi One到手必做:Linux系统首次启动自动扩容rootfs的保姆级验证指南

香橙派OrangePi One开箱指南&#xff1a;首次启动自动扩容rootfs的完整验证流程 第一次拿到香橙派开发板时&#xff0c;最让人困惑的莫过于如何确认系统是否成功利用了TF卡的全部空间。作为嵌入式Linux新手&#xff0c;我清楚地记得自己第一次启动OrangePi One时的忐忑——那些…...

AI辅助开发:用提示词让快马AI自动生成技术职级成长路径分析应用

AI辅助开发&#xff1a;用提示词让快马AI自动生成技术职级成长路径分析应用 最近在研究技术职级体系时&#xff0c;发现很多开发者对阿里P10这类高级职位的成长路径特别感兴趣。但手动整理这些信息费时费力&#xff0c;于是尝试用AI辅助开发的方式快速生成一个可视化分析工具。…...

AutoDL云服务器避坑指南:从PyTorch到Jupyter,手把手搞定GPU环境配置

AutoDL云服务器GPU环境配置实战&#xff1a;从镜像选择到Jupyter避坑全攻略 第一次在AutoDL这类云GPU平台上配置深度学习环境时&#xff0c;那种既兴奋又忐忑的心情我至今记忆犹新。看着琳琅满目的镜像选项和复杂的版本匹配要求&#xff0c;稍有不慎就会陷入"版本地狱&qu…...

先整个经典的入门款耶路撒冷十字电阻吸波器玩吧,就冲5.8GHz的WiFi频段调——毕竟现在连吸波材料都得先蹭蹭网络信号的热度才好入门嘛

CST仿真吸波器选5.8GHz有个小小心思&#xff1a;单层电阻超材料的谐振频率一般和单元边长相关&#xff0c;大概是谐振波长的0.2-0.4倍&#xff08;等效介电常数εr算进去的话还要除以√εr的平方根&#xff09;&#xff0c;用的FR-4基板ε_r4.4、tanδ0.025、厚度1mm&#xff0…...

bean with name ‘sqlSessionFactory‘ defined in class path resource [com/baomidou/mybatisplus/autoconf

还得是豆包啊...

华为交换机流量统计配置全攻略:从ACL到流策略的保姆级教程

华为交换机流量统计配置全攻略&#xff1a;从ACL到流策略的保姆级教程 在网络运维工作中&#xff0c;流量统计是排查故障、优化性能的基础技能。想象一下这样的场景&#xff1a;某天凌晨&#xff0c;核心业务突然出现访问延迟&#xff0c;你需要快速判断是服务器问题还是网络链…...