• Oracle中的NVL、NVL2、NULLIF、COALESCE函数详解


    NVL、NVL2、NULLIF与COALESCE都是处理当前字段值为空时候的转换函数。接下来我们对这几个函数进行介绍。

    NVL函数

    基本语法:
    NVL(表达式1,表达式2)

    含义:
    如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值。
    该函数的目的是把一个空值(null)转换成一个实际的值。其表达式的值可以是数字型、字符型和日期型,表达式1和表达式2的数据类型必须为同一个类型。举例如下:

    • 对数字型: NVL( comm,0);
    • 对字符型: NVL( TO_CHAR(comm), ‘No Commission’)
    • 对日期型 :NVL(hiredate,’ 28-MAR-99’)

    示例1:

    SELECT D.EMPNO,D.COMM, NVL(COMM,200) FROM SCOTT.EMP D;
    
    • 1

    示例2:

    select  ename,NVL(TO_char(comm),ename||' is not a salesperson!') AS COMMISSION from emp
    
    • 1

    NVL2函数

    基本语法:
    NVL2(表达式1,表达式2,表达式3)

    含义:
    如果表达式1为空,返回值为表达式3的值。如果表达式1不为空,返回值为表达式2的值。

    例如 NVL2(comm,sal+comm,sal)
    NVL2函数测试comm,如果comm为空,就返回sal 的值。如果 comm 不为空(null),就返回表达式 sal+comm的值。

    示例:

    SELECT D.EMPNO,  COMM, SAL,NVL2(COMM, SAL + COMM, SAL) FROM SCOTT.EMP D;
    
    • 1

    NULLIF函数

    基本语法:
    NULLIF(表达式1,表达式2)

    含义:
    如果第一个表达式和第二个表达式的内容相同,那么返回NULL,否则,返回第一个表达式的值。

    示例:

    SELECT ENAME,NULLIF(LENGTH(ENAME),5) FROM SCOTT.EMP D;
    
    • 1

    COALESCE函数

    基本语法:
    COALESCE(列名,表达式1,表达式2,…,表达式n)

    含义:
    该函数用来匹配多个字段的值。如果表达式1的值为NULL,那么显示表达式2的值,如果表达式2的值也为空,那么显示表达式3的值,依次类推。

    • 与NVL相比,COALESCE的优点在于可以同时处理交替的多个值。

    • 返回参数列表中第一个非空表达式。

    • 最后一个参数通常会是一个常量。

    • 参数可以有多个,最少有一个,可以全是NULL。

    示例:

    SELECT D.MGR,COALESCE(MGR,NULL),D.COMM,D.EMPNO,COALESCE(MGR,COMM,88) FROM SCOTT.EMP D;
    
    • 1

    参考链接:https://mp.weixin.qq.com/s?src=11×tamp=1700101452&ver=4899&signature=vZxuQfufsBkMZRuLhXCyKUqPIkJ7dYfBrybznfof9U8HRNnbGD43JykxGjja7Q3yuxLmuQSIwB-meC9ELNj25KLgaIOsamUiElrg7UZzLKufki4gIwpU4cqctaDNv4&new=1

  • 相关阅读:
    归并排序-面试例子
    【Proteus仿真】【51单片机】电蒸锅温度控制系统
    谈对数据库索引的认识
    MyBatis的缓存
    一个简单高效低内存的.NET操作Excel开源框架 - MiniExcel
    浅谈IDEA的目录
    使用卡特兰数来解决的问题
    .net core-利用PdfSharpCore和SkiaSharp.QrCode 添加PDF二维码页眉
    php-java-net-python-报修修改计算机毕业设计程序
    GBase8s数据库由数据库对象执行的对照
  • 原文地址:https://blog.csdn.net/Ruishine/article/details/134436420