SQL---count()函式結果為null時替換為0
阿新 • • 發佈:2019-02-09
在sql中,做count()統計時,如果結果為null,這條資料是不顯示的,但是經常會有類似的需求,比如:統計江西省下的某11個市的企業數量,如果有些城市企業數量為0,會發現最後返回的結果不到11條。怎麼辦?
有如下的資料:
現在需要統計:江西商務廳下的所有的公司數量,按照city排序,sql很簡單,如下:
SELECT city, COUNT(*) AS count FROM entInfo WHERE department = '江西商務廳' AND city IN ( '南昌市', '景德鎮市', '萍鄉市', '九江市', '新餘市', '鷹潭市', '贛州市', '吉安市', '宜春市', '撫州市', '上饒市' ) GROUP BY city
此時會得到如下結果,會發現,本來有11個市,但查詢結果裡面僅有8條資料,因為有三個市是沒有資料的,查詢結果為null,所有沒有顯示。
這個sql可以這麼寫:
查詢結果如下:SELECT t.city,count(h.id) as count from ( SELECT '南昌市' city UNION SELECT '景德鎮市' city UNION SELECT '萍鄉市' city UNION SELECT '九江市' city UNION SELECT '新餘市' city UNION SELECT '鷹潭市' city UNION SELECT '贛州市' city UNION SELECT '吉安市' city UNION SELECT '宜春市' city UNION SELECT '撫州市' city UNION SELECT '上饒市' city ) t LEFT JOIN intInfo on t.city=h.city and h.department='江西商務廳' GROUP BY t.city ORDER BY count desc