Cuidados ao usar Exists

6 meses depois do ltimo post (e com o planejamento de ano novo completamente furado o de postar pelo menos 1 vez a cada 15 dias 🙁 )
Dica rpida para quem usar EXISTS :
Nunca utilize uma funo de agregao quando utilizar o EXISTS. Por qu?
Segue um script rpido que insere alguns poucos registros em uma tabela para testarmos…

“Estranho”, n?
Agora removam o count e executem novamente… Podem substituir o count por MIN, MAX, etc…
Viram o resultado?
Isso ocorre, pois toda a funo de agregao retorna uma linha, sempre(O NULL uma linha), e o EXISTS verifica se a subconsulta retornou qualquer linha. Se retornou, TRUE e portanto nunca vai executar o ELSE.
Vejam a diferena:

Ficou claro que um retorna uma linha e o outro no retorna nada? Ainda no?

Ento, fica a dica…

Nunca utilize uma funo de agregao quando utilizar o EXISTS.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.