查询统计怎么把null与''统计到一起啊

adrianEvin 2015-06-04 04:06:49
select count(distinct name) from table a
group by name

结果会有等于null 和 等于 ‘’ 都有啊
我想把null转换为‘’一起算条数怎么写啊

...全文
200 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
smthgdin_020 2015-06-04
  • 打赏
  • 举报
回复
用isnull函数给null的字段指定默认值就行了。
xuzuning 2015-06-04
  • 打赏
  • 举报
回复
你已经 count(distinct name) null, '' 都只会计算一条,和你的期望是有差距的 select count(distinct ifnull(name,'')) from table a 看看就知道 '' 组最多是1
江南小鱼 2015-06-04
  • 打赏
  • 举报
回复
引用 楼主 adrianEvin 的回复:
select count(distinct name) from table a group by name 结果会有等于null 和 等于 ‘’ 都有啊 我想把null转换为‘’一起算条数怎么写啊

select count(distinct isnull(name,''))  from table a
 group by isnull(name ,'')
  • 打赏
  • 举报
回复
不知道为什么上面我引用的 msdn 的文章说它的适用范围是“SQL Server 2008以上版本”。这些年我不用sql server,但是我可以肯定它应该是1995年以前就是标准写法。
  • 打赏
  • 举报
回复
isnull(name,'')
  • 打赏
  • 举报
回复
看看 msdn: https://msdn.microsoft.com/zh-cn/library/ms184325.aspx 这应挂在 sql server 7中就支持,应该是20年前sql server的编程教程中就有了。我印象中我刚学sql的时候肯定都是正规学过这个写法的。
於黾 2015-06-04
  • 打赏
  • 举报
回复
给null字段设置个默认值''就完了
  • 打赏
  • 举报
回复
里面先执行一次查询,将两种情况合并,外面再Group by 以oracle为例: SELECT COUNT(NAME) FROM ( SELECT NVL(NAME, '') AS NAME FROM TABLE ) GROUP BY NAME

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧