这是一个哲学问题,我想......
假设我在SQL Server中执行此查询:
SELECT mygroup, COUNT(mycolumn)
FROM mytable
GROUP BY mygroup
计数列包含NULL,ANSI_WARNINGS选项为ON,因此我得到:
警告:聚合或其他SET消除了空值 操作
我明白这意味着什么。并且有很多方法可以“修复”此警告。但是...... 为什么它首先抱怨?
跳过任何NULL 所有COUNT(mycolumn)
都行!如果我想计算所有行,包括此列的NULL,我会使用{{1 }}。是不是很清楚我的意图是否跳过NULL?
我想ANSI标准要求这个警告,即使在这个明显的情况下也是如此。为什么呢?
答案 0 :(得分:0)
仅当聚合结果集中存在实际null时,才会显示警告。我相信它是在那里提醒你,如果你遇到数据一致性问题,就不会计算空值并警告你,因为出现了你没想到的空值。