MySQL 将null转0 ifnull() coalesce()

作者 : admin 本文共543个字,预计阅读时间需要2分钟 发布时间: 2024-06-9 共4人阅读

做统计报表的时候,有时候不希望查出来的值是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");

本站无任何商业行为
个人在线分享 » MySQL 将null转0 ifnull() coalesce()
E-->