Count(table.column)不考虑列的空值?

时间:2015-01-05 12:52:45

标签: sql sql-server-2008-r2

我想计算列的所有值,而不管其中的NULL值。 我试过了这个问题。

SELECT COUNT(t1) FROM Bilal b WHERE b.t1 IS NULL 

结果 = 0

t1  t2
1   1
NULL    NULL

SELECT COUNT(t1) FROM Bilal b

结果 = 1

3 个答案:

答案 0 :(得分:0)

这是已知的行为。

Count(*)将包含NULLS

答案 1 :(得分:0)

由于您在计算特定列(SELECT COUNT(t1)),因此出现问题。相反,您可以使用SELECT COUNT(*)SELECT COUNT(1),它们都包含NULL值。如果您对这些机制感兴趣,请阅读this blog post了解详细信息。

答案 2 :(得分:0)

select count(nvl(t1,0)) from table;