首页 > 数据库    日期:2026-06-18 / 浏览

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

总结

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

觉得上面的内容有用吗?快来点个赞吧!

点赞() 我要打赏

温馨提示 : 本站内容来自会员投稿以及互联网,所有源码及教程均为作者总结编辑,请大家在使用过程中提前做好备份,以免发生无法预知的错误,源码类教程请勿直接用于生产环境!

 可能感兴趣的文章