为什么警告COUNT(col)中的NULL?

时间:2013-07-04 10:43:20

标签: sql-server warnings ansi-sql

这是一个哲学问题,我想......

假设我在SQL Server中执行此查询:

SELECT mygroup, COUNT(mycolumn)
FROM mytable
GROUP BY mygroup

计数列包含NULL,ANSI_WARNINGS选项为ON,因此我得到:

  

警告:聚合或其他SET消除了空值   操作

我明白这意味着什么。并且有很多方法可以“修复”此警告。但是...... 为什么它首先抱怨?

跳过任何NULL 所有COUNT(mycolumn)都行!如果我想计算所有行,包括此列的NULL,我会使用{{1 }}。是不是很清楚我的意图是否跳过NULL?

我想ANSI标准要求这个警告,即使在这个明显的情况下也是如此。为什么呢?

1 个答案:

答案 0 :(得分:0)

仅当聚合结果集中存在实际null时,才会显示警告。我相信它是在那里提醒你,如果你遇到数据一致性问题,就不会计算空值并警告你,因为出现了你没想到的空值。