NVL、NVL2、NULLIF、COALESCE的区别是什么?
【DB笔试面试454】 NVL、NVL2、NULLIF、COALESCE的区别是什么?
NVL、NVL2、NULLIF与COALESCE都是处理当前字段值为空的时候的转换函数。以下将分别对这几个函数进行介绍。
1、NVL函数
当修饰的字段的内容为NULL时,NVL的运算结果为指定的值,可以使用的数据类型有日期、字符和数字。函数的参数只能有2个,如果有多个参数值,那么可以用COALESCE,例如“NVL(SEX,2)=2”和“(SEX=2 OR SEX IS NULL)”的意思是一样的。
SELECT D.EMPNO,D.COMM, NVL(COMM,200) FROM SCOTT.EMP D;
2、NVL2(表达式1,表达式2,表达式3)
如果表达式1的值不为NULL,那么显示表达式2的值,否则,显示表达式3的值。
SELECT D.EMPNO, COMM, SAL,NVL2(COMM, SAL + COMM, SAL) FROM SCOTT.EMP D;
3、NULLIF(表达式1,表达式2)
如果第一个表达式和第二个表达式的内容相同,那么返回NULL,否则,返回第一个表达式的值。
SELECT ENAME,NULLIF(LENGTH(ENAME),5) FROM SCOTT.EMP D;
4、COALESCE(列名,表达式1,表达式2,…,表达式n)
该函数用来匹配多个字段的值。如果表达式1的值为NULL,那么显示表达式2的值,如果表达式2的值也为空,那么显示表达式3的值,依次类推。
(1) 与NVL相比,COALESCE的优点在于可以同时处理交替的多个值。
(2) 返回参数列表中第一个非空表达式。
(3) 最后一个参数通常会是一个常量。
(4) 参数可以有多个,最少有一个,可以全是NULL。
SELECT D.MGR,
COALESCE(MGR, NULL),D.COMM,D.EMPNO,COALESCE(MGR, COMM, 88)
FROM SCOTT.EMP D;
本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。
NVL、NVL2、NULLIF、COALESCE的区别是什么?相关推荐
- oracle中的NVL,NVL2,NULLIF,COALESCE函数使用
Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数.主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以. 下面简 ...
- mysql nvl nvl2_NVL,NVL2,NULLIF,COALESCE
一.NVL(exp1,exp2) --如果第一个参数的值不为空,则返回第一个参数的值;否则,返回第二个参数的值. SQL> select NVL(1000,12) FROM DUAL; NVL( ...
- oracle---函数(trunc,nvl,nvl2)
--oracel decode 功能:判断字符串是否一样DECODE(value,if1,then1,if2,then2,if3,then3,...,else) 含义为 IF 条件=值1 THEN ...
- SQL Server -- SQL NULL值,ISNull(),Oracal NVL(),MYSQL IFNULL(),COALESCE()
From: http://www.w3school.com.cn/sql/sql_isnull.asp SQL ISNULL().NVL().IFNULL() 和 COALESCE() 函数 请看下面 ...
- lightdb对oracle的nvl/nvl2函数的支持
一,oracle下的函数说明(详见链接) a) nvl函数 b) nvl2函数 c) 隐式转换表 二,nvl/nvl2函数返回类型 通过上述官方文档,我们发现nvl/nvl2函数的返回值分别是以参数1 ...
- oracle判断空值的函数nvl2,【PL/SQL】 NVL,NVL2,COALESCE 三种空值判断函数
看完这章你会学习到以下内容: 它们各自的用法 它们的不同之处 NVL函数 NVL(E1, E2)的功能为: 如果E1为NULL,则函数返回E2,否则返回E1本身 例子:如果EMP表上COMM奖金为NU ...
- Oracle中验证非空的函数NVL(),NVL2()总结
1.NVL()函数 NVL函数的格式如下: NVL(expr1,expr2) 含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值. 2 N ...
- nullif coalesce
NULLIF(ifunequal, comparison_term): 如果ifunequal和comparison_term相同,返回NULL: 否则,返回ifunequal. COALESCE(e ...
- NVL函数和COALESCE函数的区别
1.nvl(a,b)若a为空,返回b,若a为非空返回a.-处理参数个数有限,只能传两个参数. 对a.b两个参数的数据类型没有要求,可相同可不同. 2.coalesce(a,b,c,d,e,f,-)返回 ...
最新文章
- C++ 容器1 vector
- 惠普台式计算机系统系统修复,惠普电脑系统如何恢复【方法步骤】
- 基于.Net Framework 4.0 Web API开发(4):ASP.NET Web APIs 基于令牌TOKEN验证的实现
- java 字段构造函数_依赖注入–字段vs构造函数vs方法
- java中间件_90%的Java程序员,都扛不住这波消息中间件的面试四连炮!
- 微信小程序request请求动态获取数据
- python编程-Python 编程速成(推荐)
- get与post在技术上的区别
- Maven 安装 on centos7
- Telink IDE 泰凌微IDE C语言静态库的生成和使用
- 重新实现reuseport逻辑,实现一致性哈希
- IDEA使用Git大全
- 遥感影像、DEM免费下载以及MPT制作
- poj2706 connect
- 攻击JavaWeb应用————8、Server篇(下)
- MS-RTOS --- 技术特点及其检测标准
- Oracle 常用语句大全
- 海量数据处理专题(八)——倒排索引(搜索引擎之基石)
- XMD:使用Eclipse创建maven项目
- android微信分享怎么自定义样式,自定义微信分享样式教程
热门文章
- oracle audit_trail,关于Oracle审计(audit)
- Android中通过来电转移实现“电话已关机”,“此号码已停机”等
- word邮件合并发送记录_如何将Word文档作为电子邮件正文发送
- 使用决策树算法评估汽车等级
- 边缘检测的评价指标:PR曲线,OIS,ODS,AP的计算与代码实现
- Android应用优先级
- 温度补偿 matlab,基于传感器温度补偿方法的双指数函数模型的温度补偿算法设计...
- 【Eternallyc】函数reverse的基本用法
- 深度学习目标检测模型综述
- mysql telnet无法打开主机连接_求助:不能打开主机连接,在端口 3306: 连接失败...