我不时从SQL服务器获取此警告消息...
警告:聚合或其他SET操作消除了空值。
这只是说Null的值被设置为Null以外的其他值。 为什么我需要对此进行“警告”?
答案 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>
条目都将被忽略。