SQL之Coalesce()及IFNull()函数的使用

COALESCE函数用于返回第一个非空参数,如果所有参数都为空则返回NULL。它可以接受多个参数,常用于处理可能为NULL的数据。而IFNULL只接受两个参数,如果第一个参数不是NULL,则返回第一个参数,否则返回第二个参数。在参数数量相同的情况下,两者功能类似,但在某些性能测试中,IFNULL被认为速度稍快。
 COALESCE(value,...)

我们来看看coalesce函数在的使用格式

可以发现函数体中可以传入多个参数

借用论坛老哥图:

 我这里做个通俗的解释:

可以传入多个参数,按顺序确认,返回第一个不为null的值,如果值都为null则返回Null

例子:

((SELECT s_score FROM score WHERE c_id = 1),0)

这里传入一个一个子查询的值,从score表中找s_score且c_id为1,此时若找到值,则直接返回子查询的值,如果子查询为null,则返回0

看到这可能大伙可能会有疑问,这跟if null函数有什么区别

我们先来看看if null的使用结构

IFNULL(expr1,expr2)

可以看到只能传入2个参数,它接受2个参数,如果不是NULL,则返回第一个参数。否则,IFNULL返回第二个参数。

可以看到在2个参数的时候两者并没有什么区别。

可能会好奇两者效率——查阅论坛之后说是两者在参数相同时,ifnull更快(不知道是否可信)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值