SQL---count()函数结果为null时替换为0

来源:互联网 发布:南柯奇谭 墨竹 知乎 编辑:程序博客网 时间:2024/06/05 00:57

在sql中,做count()统计时,如果结果为null,这条数据是不显示的,但是经常会有类似的需求,比如:统计江西省下的某11个市的企业数量,如果有些城市企业数量为0,会发现最后返回的结果不到11条。怎么办?

有如下的数据:


现在需要统计:江西商务厅下的所有的公司数量,按照city排序,sql很简单,如下:

SELECTcity,COUNT(*) AS countFROMentInfoWHEREdepartment = '江西商务厅'AND city IN ('南昌市','景德镇市','萍乡市','九江市','新余市','鹰潭市','赣州市','吉安市','宜春市','抚州市','上饶市')GROUP BYcity

此时会得到如下结果,会发现,本来有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.cityORDER BY count desc
查询结果如下:





阅读全文
0 0
原创粉丝点击