Mysql系列(一):含邏輯處理的sql語句,如查詢結果爲null的轉爲0

將null轉爲0

在Java程序中調用sql語句時,如果返回結果是null,是非常容易引發程序拋出空指針異常的。
在這裏插入圖片描述

單字段結果由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,例如:
3、IFNULL包含整個sql

// 返回結果:null
SELECT IFNULL(price,0) price FROM goods WHERE name='aaa';

這時候,需要改寫成下面的形式:

// 返回結果:0
SELECT IFNULL((SELECT price FROM goods WHERE name='aaa'),0) price;

在實際應用中,如果你確定where條件的值一定存在,使用寫法2就可以了,否則要用寫法3。

聚合結果由null轉0

// 返回結果:0
SELECT IFNULL(SUM(price),0) FROM goods WHERE status=3;

其他,AVG、COUNT等用同樣方式處理,而且,無論wher條件存在不存在,結果都是會返回0的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章