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

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;

示例2:

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

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;

NULLIF函数

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

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

示例:

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

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;

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


http://www.kler.cn/a/131901.html

相关文章:

  • 《使用EasyExcel在Excel中增加序号列的方法》
  • Boolean源码解剖学
  • chardet检测文件编码,使用生成器逐行读取文件
  • 【Debug】查询的数据量比数据库中的数据量还要多
  • AWTK实现汽车仪表Cluster/DashBoard嵌入式GUI开发(七):FreeRTOS移植
  • Java智慧工地SaaS管理平台源码:AI/云计算/物联网
  • 基于DE10-Standard Cyclone V SoC FPGA学习---开发板简介
  • 几种常用的排序
  • K8s Pod 创建埋点处理(Mutating Admission Webhook)
  • node 第十九天 使用node插件node-jsonwebtoken实现身份令牌jwt认证
  • 【算法】算法题-20231118
  • WPF中可视化树和逻辑树的区别是什么
  • 【Python大数据笔记_day10_Hive调优及Hadoop进阶】
  • Kafka 集群如何实现数据同步?
  • ios 网站打包操作步骤介绍
  • [Python学习笔记]multiprocess 多进程间变量共享
  • 微服务的注册发现和微服务架构下的负载均衡
  • jenkins清理缓存命令
  • 农户建档管理系统的设计与实现-计算机毕业设计源码20835
  • 从零搭建微服务架构:Spring Boot与Nacos完美整合