6.单行函数-通用函数

本文详细介绍了SQL中处理空值的各种函数,包括NVL(), NVL2(), NULLIF(), DECODE(), CASE WHEN THEN, coalesce()等。通过具体实例展示了如何在查询中有效地管理和替换NULL值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、使用NVL()将判断操作数是不是null,若是null返回后面的值,若不是null返回该值

select NVL(sal,0) from emp;--若sal是null,返回0;若sal不是null,返回sal

2、使用NVL2()判断是不是null

select NVL2(comm,sal+comm,sal) from emp;--若comm是null,返回sal;若comm不是null,返回sal+comm;

3、NULLIF(表达式1,表达式2),判断两个表达式是不是相等,相等返回NULL;不相等返回表达式1

select NULL(1,1) from dual;--返回NULL

4、DECODE(表达式,值1,输出结果1,值2,输出结果2,...,默认值),若表达式结果为值1输出结果1,若结果为值2,输出结果2,若都不匹配输出默认值

select DECODE(2,1,'结果1',2,'结果2','默认结果') from dual;--输出结果2

5、CASE..WHEN..THEN.. 表达式

SELECT
CASE job WHEN 'CLERK' THEN sal*1.1
WHEN 'SALESMAN' THEN sal*1.5
ELSE sal*1
END
FROM emp;
--若job是CLERK返回工资乘以1.1,若job是SALESMAN返回工资乘以1.5,否则返回工资乘以1

6、coalesce(表达式1,表达式2,....表达式n),若表达式1的值为null,返回表达式2的值,如果表达式2的值为null返回表达式3的值,以此类推,

若所有表达式的值都为null,则返回null,注意所有表达式的类型都应该相同
select coalesce(null,1,2) from dual;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值