有关空值的SQL Server警告消息

时间:2009-12-16 15:52:15

标签: sql-server null

我不时从​​SQL服务器获取此警告消息...

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

这只是说Null的值被设置为Null以外的其他值。 为什么我需要对此进行“警告”?

4 个答案:

答案 0 :(得分:9)

您有ansi warnings turned on,并且在包含空值的列上使用聚合(sum,max,min,...)。

SET ANSI_WARNINGS OFF

引用:

  

设置为ON时,如果在聚合函数中出现空值,例如SUM,AVG,MAX,MIN,STDEV,STDEVP,VAR,VARP或COUNT,则会生成警告消息。设置为OFF时,不会发出警告。

答案 1 :(得分:7)

不,它告诉您将NULL值传递给聚合函数。由于聚合函数忽略NULL值(COUNT除外),这可能是不需要的行为。因此,你会受到警告。

答案 2 :(得分:3)

你得到这个是因为无法评估空值。因此,除非您使用的是null,否则null既不大于,小于或等于任何东西。这意味着如果您使用MAX(),那么具有空值的行将被忽略。现在,您可以使用isnull函数包装该列,并且您将不再收到该消息。

答案 3 :(得分:0)

最常见的例子可能是执行SELECT COUNT(<column>)命令。任何<column>条目都将被忽略。