MSSQL2008R count

zhouixi 2016-12-28 10:45:26


select COUNT(*) from (select 1 id union select null union select 2) as a;
select COUNT(id) from (select 1 id union select null union select 2) as a;


两者有什么区别吗。结果不一样。
...全文
74 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 版主 2016-12-29
  • 打赏
  • 举报
回复
引用 3 楼 zhouixi的回复:
[quote=引用 1 楼 wmxcn2000 的回复:] 有区别的, 1、返回表(或子查询)的行数; 2、返回 id 不为 NULL 的行数,也就是说 count、sum、avg 这些函数,会忽略掉 NULL 行;
在不用*的前提,或是指定某一字段的时候。 聚合好像自动忽略了NULL。一般的需求中,指定字段的比较多吧。这样能消除NULL[/quote] 如果你在使用count(col_name)时,一定要用主键列。 主键可以保证非空。
zhouixi 2016-12-28
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
有区别的, 1、返回表(或子查询)的行数; 2、返回 id 不为 NULL 的行数,也就是说 count、sum、avg 这些函数,会忽略掉 NULL 行;
在不用*的前提,或是指定某一字段的时候。 聚合好像自动忽略了NULL。一般的需求中,指定字段的比较多吧。这样能消除NULL
卖水果的net 版主 2016-12-28
  • 打赏
  • 举报
回复
头一个应该返回 3 . 第二个应该返回 2 .
卖水果的net 版主 2016-12-28
  • 打赏
  • 举报
回复
有区别的, 1、返回表(或子查询)的行数; 2、返回 id 不为 NULL 的行数,也就是说 count、sum、avg 这些函数,会忽略掉 NULL 行;

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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