admin

COUNT(*)是否包含空值?

sql

MSDN文档指出:

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

您如何在一个组中有一个空值?谁能解释他们要提出的观点?


阅读 450

收藏
2021-05-10

共1个答案

admin

如果你有这张桌子

表格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
2021-05-10