oracle函数NVL,NVL2和NULLIF之间的区别和使用
oracle用这么几个函数,可以帮助我们解决数据上null或0的处理
1、NVL()函数
1.1)介绍:NVL(expr1,expr2),若expr1为null, 返回expr2; 不为null,返回expr1。 注意:两者类型要一致
1.2)用法:
--expr1为空,返回expr2,结果:'未知'--
select NVL(null,'未知') SexType from dual;
--expr1不为空,返回expr1, 结果:1 --
select NVL('','') SexType from dual;
1.3)实际应用:
如:我们查询表数据出现这种结果,某个字段若为null,返回0
--未加函数时情况 --
select A.UseFlag 使用标志,A.NAME 单据名称 from Dxc_Receive_Notice A

若字段不为null,直接返回字段本身
--加函数时情况,要求(field 为null,返回0 ;field 不为null,返回本身) --
select NVL(A.UseFlag,'0') 使用标志,A.NAME 单据名称 from Dxc_Receive_Notice A

2、NVL2 函数
2.1)介绍:NVL2 (expr1, expr2, expr3),若expr1不为NULL,返回expr2 ;为NULL,返回expr3。注意:expr2 和expr3 类型不同的话,expr3 会转换为expr2 的类型
2.2)用法:
--不为null时,返回expr2 ,结果:1
select NVL2(0,1,2) from dual;
--为null时,返回expr3 ,结果:2
select NVL2(null,1,2) from dual;
2.3)实际应用
将查询结果中字段若为null,返回0
--未加函数时情况 --
select A.UseFlag 使用标志,A.NAME 单据名称 from Dxc_Receive_Notice A

若字段不为null,直接返回字段本身
--应用到实际查询中,要求(field 为null,返回0; field 不为null,返回本身)
select NVL2(A.UseFlag,A.UseFlag,'') 使用标志,A.NAME 单据名称 from Dxc_Receive_Notice A

3、NULLIF函数
3.1)介绍:NULLIF (expr1, expr2),若expr1和expr2相等,返回NULL;不相等,等返回expr1
3.2)用法:
--相等时,返回结果: null --
select NULLIF(1,1) from dual;
--不相等时,返回结果: 1 --
select NULLIF(1,2) from dual;
3.3)实际应用
将查询结果中字段为‘0001/1/1’,返回null
--未加函数查询结果 要求(将日期类型默认'0001/1/1',改成null,不相等,返回本身日期)---
select A.RECEIVEDATE 收货日期,A.NAME 单据名称 from Dxc_Receive_Notice A

若字段不为‘‘0001/1/1’,返回字段本身
--添加函数查询结果,要求(将日期类型默认'0001/1/1',改成null,不相等,返回本身日期)--
select NULLIF(A.RECEIVEDATE,TO_DATE('0001/1/1','yyyy-mm-dd hh24:mi:ss')) 收货日期,A.NAME 单据名称 from Dxc_Receive_Notice A

oracle函数NVL,NVL2和NULLIF之间的区别和使用的更多相关文章
- oracle函数nvl, nvl2, nullif
nvl函数 语法: NVL(表达式1, 表达式2) select nvl(s.name, '未填写') from student s 如果表达式1的值为空, 则显示第二个值, 否则显示原来的值, nv ...
- oracle函数nvl,nvl2的区别,nullif函数,coalesce函数
在oracle中用nvl和nvl2函数来解决为空的情况,例如,如果奖金为空,则为它指定一个数.也就是nvl(奖金字段,指定的奖金),但是两个的类型要一致. 1)nvl()函数 SQL> sele ...
- oracle通用函数,nvl,nvl2,NULLIF ,coalesce
Oracle 通用函数 ① NVL 函数--------将空值转换成一个已知的值: 可以使用的数据类型有日期.字符.数字. 函数的一般形式: NVL(commission_pct,0) ...
- Oracle中验证非空的函数NVL(),NVL2()总结
1.NVL()函数 NVL函数的格式如下: NVL(expr1,expr2) 含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值. 2 N ...
- Oracle NVL 函数 nvl nvl2
Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数.主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以. 下面简 ...
- oracle之nvl,nvl2,decode
oracle sql常用查询nvl,nvl2,decode区别及使用方法 1,NVL( E1, E2) 如果E1为NULL,则NVL函数返回E2的值,否则返回E1的值,如果两个参数都为NULL ,则返 ...
- NVL函数(NVL,NVL2,NULLIF,COALESCE)
NVL 语法:NVL( expr1, expr2) 功能:如果expr1为NULL,则NVL函数返回expr2的值,否则返回expr1的值,如果两个参数的都为NULL ,则返回NULL. 注意事项:e ...
- 函数nvl,nvl2,nullif,coalesce
NVL: Converts a null value to an actual valueNVL2:If expr1 is not null, NVL2 returns expr2. If expr1 ...
- NVL NVL2 COALESCE NULLIF decode
NVL(EXPR1,EXPR2)NVL2(EXPR1,EXPR2,EXPR3)NULLIF(EXPR1,EXPR2)COALESCE(EXPR1,,..,EXPRn)decode --------NV ...
随机推荐
- 数据库备份出现警告:Warning: Using a password on the command line interface can be insecure. Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even thos
1.先来看原备份数据库语句: mysqldump -h 127.0.0.1 -uroot -ppassword database > /usr/microStorage/dbbackup/cap ...
- Linux下的压缩解压缩命令详解及实例
实例:压缩服务器上当前目录的内容为xxx.zip文件 zip -r xxx.zip ./* 解压zip文件到当前目录 unzip filename.zip ====================== ...
- django自定义Admin actions
通常情况下,admin的工作模式是“选中目标,然后修改目标”,但在同时修改大量目标的时候,这种模式就变得重复.繁琐. 为此,admin提供了自定义功能函数actions的手段,可以批量对数据进行修改. ...
- ado_基本连接操作【四】
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data. ...
- CoordinatorLayout实现的效果(标题栏效果)
一.效果 CoordinatorLayouy是一个能够协调子布局的容器布局. 使用引入: compile 'com.android.support:design:24.1.1' 常见的使用方法如下:1 ...
- Zabbix报警执行远程命令
日常Zabbix报警案例中,大多都是报警发送邮件,场景里很少有需要报警后执行一个命令(启动服务.清空磁盘空间.关停服务器);而今天就给大家讲讲最近需要做的事:报警后执行远程命令 刚好zabbix动作中 ...
- Codeforces 1079 E - The Unbearable Lightness of Weights
E - The Unbearable Lightness of Weights 思路: 分组背包dp 每组最多只能选一个 一些优化可以快很多 代码: #pragma GCC optimize(2) # ...
- Codeforces 1005 F - Berland and the Shortest Paths
F - Berland and the Shortest Paths 思路: bfs+dfs 首先,bfs找出1到其他点的最短路径大小dis[i] 然后对于2...n中的每个节点u,找到它所能改变的所 ...
- [C#]获取指定文件夹下的所有文件名(递归)
典型的递归方法: //定义一个list集合 List<String> list = new List<String>(); public void director(strin ...
- 测试环境的好工具bginfo
省的自己来回找这台机器的IP,剩余空间了. 直接都显示在桌面了. https://www.howtogeek.com/school/sysinternals-pro/lesson7/