Fala pessoal,
Nesse post vamos entender quando podemos encontrar a mensagem abaixo e se isso é realmente um problema ou não! #gogogo
“Warning: Null value is eliminated by an aggregate or other SET operation”
Warning: Null value is eliminated by an aggregate or other SET operation:
Vamos simular um cenário criando uma tabela e inserindo alguns registros.
Agora vamos fazer a soma dos valores da coluna “Salario”.
Até aqui tudo normal. Vamos então inserir mais uma linha, mas repare que dessa vez vamos informar o valor do Salario como NULL.
Agora vamos fazer novamente a soma na coluna “Salario”.
Repare que o valor da soma é o mesmo do SELECT anterior.
Contudo, ao validar a aba “Messages” temos a mensagem abaixo e mesmo assim a query ainda foi executada com sucesso!
“Warning: Null value is eliminated by an aggregate or other SET operation.”
“Uai Luiz, mas afinal, isso é um ERRO ou não???”
Isso NÃO É UM ERRO!!! Como o próprio nome já diz: WARNING = AVISO e AVISO <> ERRO
O SQL Server está apenas te INFORMANDO que ele eliminou alguns valores NULL na soma (que é uma função de agregação). No nosso caso, ele eliminou o valor NULL da linha 4.
Lembro que no início da minha carreira eu enxergava essa mensagem, mas não entendia o que queria dizer e simplesmente ignorava. O tempo foi passando e um certo dia parei pra entender mais a fundo e depois nunca mais esqueci. Então resolvi compartilhar com vocês também, pois pode ser uma dúvida comum pra quem está começando. xD
CUIDADO: COUNT x NULL
Um outro caso que sempre me deixou intrigado é o seguinte:
Repare que ao utilizar o “COUNT(*)” ele retorna o valor 4, pois ele entende que você quer saber a quantidade total de linhas na sua tabela, independente de possuir o valor NULL ou não.
Mas quando utilizamos o “COUNT(Salario)” em uma coluna específica, nesse caso o SQL Server irá ignorar os valores NULL e por esse motivo ele retorna o valor 3.
“Warning: Null value is eliminated by an aggregate or other SET operation.”
Espero que tenha gostado e que isso também possa ser útil no seu dia a dia. Até o próximo post!
Me siga no LinkedIn e YouTube para ficar por dentro das novidades.
Abraço,
Luiz Vitor França Lima
Consultor SQL Server