COUNT(*)包括空值?

Der*_*ler 16 sql sql-server

MSDN文档说明:

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

你怎么能在一个组中有一个空值?任何人都可以解释他们想要提出的观点吗?

Jua*_*eza 40

如果你有这张桌子

表格1:

 Field1    Field2    Field3
 ---------------------------
   1         1         1
  NULL      NULL      NULL
   2         2        NULL
   1         3         1
Run Code Online (Sandbox Code Playgroud)

然后

 SELECT COUNT(*), COUNT(Field1), COUNT(Field2), COUNT(DISTINCT Field3)
 FROM Table1
Run Code Online (Sandbox Code Playgroud)

输出是:

 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
Run Code Online (Sandbox Code Playgroud)