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

5131

被折叠的 条评论
为什么被折叠?



