Na linguagem SQL, a função que é usada para verificar se o resultado de uma subconsulta correlacionada é vazio ou não, a qual retorna como resultado o valor booleano TRUE ou FALSE, é
- A)HAVING.
HAVING serve para filtrar grupos após o GROUP BY, não para verificar se uma subconsulta retornou linhas.
- B)EXISTS.
EXISTS é o operador que testa se a subconsulta retorna ao menos uma linha e devolve TRUE ou FALSE.
- C)LIKE.
LIKE é usado para comparar padrões de texto com curingas, não para checar existência de resultado.
- D)IN.
IN verifica se um valor pertence a uma lista ou ao conjunto retornado pela subconsulta, mas não é a função típica de testar vazio.
- E)AVG.
AVG calcula média aritmética de valores numéricos, sem relação com subconsultas correlacionadas ou booleanos.
Gabarito: B
Quando a questão fala em verificar se o resultado de uma subconsulta correlacionada está vazio ou não, ela está descrevendo exatamente a função lógica do operador EXISTS. Em SQL, ele testa a existência de pelo menos uma linha retornada pela subconsulta e devolve TRUE ou FALSE, o que o torna perfeito para esse tipo de verificação. Pense assim: a subconsulta pode até ser pequena, mas o que importa é se ela trouxe alguma linha. Se trouxe, EXISTS avalia como verdadeiro; se não trouxe nada, avalia como falso. É uma forma muito comum de fazer consultas condicionais sem precisar comparar valores diretamente. Isso explica por que o gabarito é a letra B. As demais alternativas são funções ou cláusulas com outras finalidades, como filtro, comparação de padrão ou cálculo agregado, e não servem para checar vazio ou existência de resultado de subconsulta. Em concursos, especialmente na linha CESPE/CEBRASPE, esse tipo de detalhe aparece com frequência: eles trocam a ideia de "existência" por "pertinência", "padrão" ou "agregação" para ver se você sabe a função real de cada comando SQL.