前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL---count()函数结果为null时替换为0

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

作者头像
IT云清
发布2019-01-22 10:19:52
5.7K0
发布2019-01-22 10:19:52
举报
文章被收录于专栏:IT云清

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

有如下的数据:

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

代码语言:javascript
复制
SELECT
	city,
	COUNT(*) AS count
FROM
	entInfo
WHERE
	department = '江西商务厅'
AND city IN (
	'南昌市',
	'景德镇市',
	'萍乡市',
	'九江市',
	'新余市',
	'鹰潭市',
	'赣州市',
	'吉安市',
	'宜春市',
	'抚州市',
	'上饶市'
)
GROUP BY
	city

此时会得到如下结果,会发现,本来有11个市,但查询结果里面仅有8条数据,因为有三个市是没有数据的,查询结果为null,所有没有显示。

这个sql可以这么写:

代码语言:javascript
复制
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

查询结果如下:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年11月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档