SQL Server列中NULL值计数异常:为何COUNT查询返回0?
问题原因及解决方法
- 核心原因:
COUNT(列名)函数的特性是忽略所有NULL值。哪怕你的WHERE条件已经筛选出MyColumn IS NULL的行,使用COUNT(MyColumn)时,每一行的MyColumn都是NULL,会被函数直接跳过,最终统计结果自然是0。 - 解决办法:要统计符合条件的行数,改用
COUNT(*)或者COUNT(1),这两种写法会统计所有满足WHERE条件的行,不受列值是否为NULL的影响。
修改后的查询语句:
SELECT count(*) as MyCount FROM MyTable WHERE MyColumn IS NULL; -- 或者 SELECT count(1) as MyCount FROM MyTable WHERE MyColumn IS NULL;
内容的提问来源于stack exchange,提问作者cdub
相关产品推荐
相关产品推荐

