Oracle-nvl函数的使用(及其相似函数)

本文详细介绍了Oracle数据库中的NVL函数用法,通过SQL实例展示了如何在查询时处理空值。NVL函数用于当字段值为空时,用指定值替换。此外,还提到了更高级的NVL2函数,以及CASE...WHEN和NULLIF等类似功能的函数,它们在数据处理和查询中起到关键作用,如移除null值、条件判断和空值处理。
摘要由CSDN通过智能技术生成

Oracle中的nvl函数使用

// SQL实例
select NVL("字段名称", 指定常量) from "表名";
// 结构拆解
NVL("数据1", "数据2");

代码解释

上述SQL的含义是指,从指定表中查出指定字段的所有数据集,如果某一条数据的该字段为空,则将该条查询结果用指定值进行替换,如果字段值不为空,则还是显示数据原始值。

简单理解就是,nvl函数的括号中可以填两个数据,数据的数据类型必须相同,如果第一个数据为空,则取第二个数据的值,第一个数据不为空,则取第一个数据的原值。

使用场景

1.例如移除计算或操作中的null值
2.例如count(*)中,直接查询时有些符合条件的数据可能查不出来,需要用nvl(列名,0)处理后再查,空值不能被索引

相似函数-进阶版的nvl2

// 进阶版的nvl2
NVL2("数据1", "数据2""数据3");

nvl2函数的括号中可以填三个数据,如果数据1为空,返回数据3的值,如果数据1不为空,返回数据2的值。

相似函数-case…when

//简单Case函数
CASE sex WHEN '1' THEN '男'
         WHEN '2' THEN '女'
         ELSE '其他' 
END
//Case搜索函数
CASE WHEN sex = '1' THEN '男'
     WHEN sex = '2' THEN '女'
     ELSE '其他' 
END

相似函数-NULLIF函数

// NULLIF函数
NULLIF("数据1","数据2");

如果数据1和数据2相等的话,返回null,如果不相等,返回数据1

相似函数-Coalesce函数函数

// Coalesce函数函数
Coalesce("数据1", "数据2", "数据3""数据n");

作用是返回第一个不为null的数据,如果都为null,则返回null,本质上类似于nvl函数的循环使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值