Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL将null转0 ifnull() coalesce()

MySQL将null转0 ifnull() coalesce()实践

作者:globalcoding

这段文章详细介绍了SQL中IFNULL()和COALESCE()函数的使用方法,用于处理查询结果中的null值,避免代码中频繁的判空操作,IFNULL()函数仅支持一个替代值,而COALESCE()则支持多个替代值,灵活应对null值的不同场景

做统计报表的时候,有时候不希望查出来的值是null,因为在代码中需要做大量的判空,最后转换成0来处理。

既然如此,那在sql中查出来就是0,就不用为空而去判空了。

1.IFNULL()

ifnull()只能放2个值。

select IFNULL(null,0);

使用举例:

如果工资为null,就设为0 

select IFNULL(salary,0) from emp

求和,如果最后值为null,设为0 

select IFNULL(sum(salary),0) from emp

2.COALESCE()

coalesce()可以放入多个值。

select coalesce(null,null,0); --结果为 0
select coalesce(null,null,null,0); --结果为 0
select coalesce(null,null,null,1,2); --结果为 1

如果第1个值为null,就看第2个值,如果第2个值不为null,就使用第2个。以此类推。

使用举例:

查出工资比 JOHN 低的员工。如果有人的工资为null,就默认为0。

select ename,salary from emp where coalesce(salary,0) < (select salary from emp whrer ename ="JOHN");

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文