COUNT(*)包括空值?

时间:2016-11-18 14:13:31

标签: sql sql-server

MSDN文档声明:

  

COUNT(*)返回组中的项目数。这包括NULL   价值观和重复。

如何在组中拥有空值?任何人都可以解释他们想要提出的观点吗?

2 个答案:

答案 0 :(得分:36)

如果你有这张表

<强>表1:

 Field1    Field2    Field3
 ---------------------------
   1         1         1
  NULL      NULL      NULL
   2         2        NULL
   1         3         1

然后

 SELECT COUNT(*), COUNT(Field1), COUNT(Field2), COUNT(DISTINCT Field3)
 FROM Table1

输出是:

 COUNT(*) = 4; -- count all rows, even null/duplicates

 -- count only rows without null values on that field
 COUNT(Field1) = COUNT(Field2) = 3

 COUNT(Field3) = 2 
 COUNT(DISTINCT Field3) = 1 -- Ignore duplicates

答案 1 :(得分:-3)

您可以连续获取Null值,具体取决于您的联接方式。确保您正在计算正确的字段或更正您的连接。