为什么count()函数需要参数?

时间:2009-03-17 09:44:35

标签: sql-server

count()函数计算行数,通常用作count(*)。如果我有一个包含phoneNo和firstName的表,count(phoneNumber)将返回与count(*)相同的数字。如果未填充,则每行中始终存在所有列。

4 个答案:

答案 0 :(得分:20)

有一个微妙的区别。

如果指定字段,count(fieldname)将计算该字段具有非null 值的记录。 count(*)将为您提供总行数。

答案 1 :(得分:7)

另一方面,您可以计算不同的值。 count(distinct firstName)可以提供不同的结果作为count(distinct phoneNumber),两者可能与count()不同。

答案 2 :(得分:4)

请参阅MSDN

Count(phoneNo)将返回phoneNo不为空的记录数。无论如何,Count(*)都会返回一个或多个行。

答案 3 :(得分:2)

COUNT(*)将计算每一行。 COUNT(yourColumn)不会包含yourColumnNULL的行。

例如,如果您的表格中有20行,其中5行中的phoneNumber列为NULL,那么COUNT(*)将返回20,而COUNT(phoneNumber)则会返回15。