SQL EXISTS | |
SQL >
Linguagem SQL avançada >
Exists
Na secção anterior, utilizamos IN para ligar a consulta interna e a consulta externa numa instrução subsequente. IN não é a única forma de fazê-lo -- é possível utilizar muitos operadores como >, <, ou =. EXISTS é um operador especial que será abordado nesta secção. EXISTS simplesmente testa se a consulta interna apresenta qualquer linha. Se apresentar, a consulta externa prossegue. Se não apresentar, a consulta externa não é executada e toda a instrução SQL não apresenta qualquer resultado. A sintaxe de EXISTS é: SELECT "nome_coluna1"
FROM "nome_tabela1" WHERE EXISTS (SELECT * FROM "nome_tabela2" WHERE "condição"); Note que em vez de *, pode selecionar uma ou mais colunas na consulta interna. O efeito será idêntico. Vamos utilizar as mesmas tabelas como exemplo: Tabela Store_Information
Tabela Geography
e emitimos a seguinte consulta SQL: SELECT SUM(Sales) FROM Store_Information
WHERE EXISTS (SELECT * FROM Geography WHERE Region_Name = 'West'); Iremos obter o seguinte resultado:
No início, isto pode parecer confuso porque a consulta secundária inclui a condição [region_name = 'West'], embora a consulta tenha somado as lojas de todas as regiões. Após uma inspecção mais atenta, descobrimos que como a consulta secundária apresenta mais de 0 linhas, a condição EXISTS é verdadeira e a condição existente na consulta interna não influencia a forma como a consulta externa é executada.
Copyright © 2024 1keydata.com Todos os direitos reservados. |