【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的区别是什么?相关推荐

  1. oracle中的NVL,NVL2,NULLIF,COALESCE函数使用

    Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数.主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以. 下面简 ...

  2. mysql nvl nvl2_NVL,NVL2,NULLIF,COALESCE

    一.NVL(exp1,exp2) --如果第一个参数的值不为空,则返回第一个参数的值;否则,返回第二个参数的值. SQL> select NVL(1000,12) FROM DUAL; NVL( ...

  3. oracle---函数(trunc,nvl,nvl2)

    --oracel  decode 功能:判断字符串是否一样DECODE(value,if1,then1,if2,then2,if3,then3,...,else) 含义为 IF 条件=值1 THEN ...

  4. 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() 函数 请看下面 ...

  5. lightdb对oracle的nvl/nvl2函数的支持

    一,oracle下的函数说明(详见链接) a) nvl函数 b) nvl2函数 c) 隐式转换表 二,nvl/nvl2函数返回类型 通过上述官方文档,我们发现nvl/nvl2函数的返回值分别是以参数1 ...

  6. oracle判断空值的函数nvl2,【PL/SQL】 NVL,NVL2,COALESCE 三种空值判断函数

    看完这章你会学习到以下内容: 它们各自的用法 它们的不同之处 NVL函数 NVL(E1, E2)的功能为: 如果E1为NULL,则函数返回E2,否则返回E1本身 例子:如果EMP表上COMM奖金为NU ...

  7. Oracle中验证非空的函数NVL(),NVL2()总结

    1.NVL()函数 NVL函数的格式如下: NVL(expr1,expr2) 含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值. 2 N ...

  8. nullif coalesce

    NULLIF(ifunequal, comparison_term): 如果ifunequal和comparison_term相同,返回NULL: 否则,返回ifunequal. COALESCE(e ...

  9. NVL函数和COALESCE函数的区别

    1.nvl(a,b)若a为空,返回b,若a为非空返回a.-处理参数个数有限,只能传两个参数. 对a.b两个参数的数据类型没有要求,可相同可不同. 2.coalesce(a,b,c,d,e,f,-)返回 ...

最新文章

  1. C++ 容器1 vector
  2. 惠普台式计算机系统系统修复,惠普电脑系统如何恢复【方法步骤】
  3. 基于.Net Framework 4.0 Web API开发(4):ASP.NET Web APIs 基于令牌TOKEN验证的实现
  4. java 字段构造函数_依赖注入–字段vs构造函数vs方法
  5. java中间件_90%的Java程序员,都扛不住这波消息中间件的面试四连炮!
  6. 微信小程序request请求动态获取数据
  7. python编程-Python 编程速成(推荐)
  8. get与post在技术上的区别
  9. Maven 安装 on centos7
  10. Telink IDE 泰凌微IDE C语言静态库的生成和使用
  11. 重新实现reuseport逻辑,实现一致性哈希
  12. IDEA使用Git大全
  13. 遥感影像、DEM免费下载以及MPT制作
  14. poj2706 connect
  15. 攻击JavaWeb应用————8、Server篇(下)
  16. MS-RTOS --- 技术特点及其检测标准
  17. Oracle 常用语句大全
  18. 海量数据处理专题(八)——倒排索引(搜索引擎之基石)
  19. XMD:使用Eclipse创建maven项目
  20. android微信分享怎么自定义样式,自定义微信分享样式教程

热门文章

  1. oracle audit_trail,关于Oracle审计(audit)
  2. Android中通过来电转移实现“电话已关机”,“此号码已停机”等
  3. word邮件合并发送记录_如何将Word文档作为电子邮件正文发送
  4. 使用决策树算法评估汽车等级
  5. 边缘检测的评价指标:PR曲线,OIS,ODS,AP的计算与代码实现
  6. Android应用优先级
  7. 温度补偿 matlab,基于传感器温度补偿方法的双指数函数模型的温度补偿算法设计...
  8. 【Eternallyc】函数reverse的基本用法
  9. 深度学习目标检测模型综述
  10. mysql telnet无法打开主机连接_求助:不能打开主机连接,在端口 3306: 连接失败...