将null转为0
在Java程序中调用sql语句时,如果返回结果是null,是非常容易引发程序抛出空指针异常的。
20190628105032354.png
单字段结果由null转0
1、普通的sql:
// 返回结果:null
SELECT price FROM goods WHERE name='light';
2、使用IFNULL包含单个字段
// 返回结果:0
SELECT IFNULL(price,0) price FROM goods WHERE name='light';
但使用IFNULL语句,如果where条件中的name值是不存在的,那么仍将返回null,例如:
// 返回结果:null
SELECT IFNULL(price,0) price FROM goods WHERE name='aaa';
这时候,需要改写成下面的形式:
3、使用IFNULL包含整个sql语句
// 返回结果:0
SELECT IFNULL((SELECT price FROM goods WHERE name='aaa'),0) price;
聚合结果由null转0
// 返回结果:0
SELECT IFNULL(SUM(price),0) FROM goods WHERE status=3;
其他,AVG、COUNT等用同样方式处理,而且,无论wher条件存在不存在,结果都是会返回0的。
网友评论