我想计算列的所有值,而不管其中的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
答案 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;