Entrar com a conta da Microsoft
Entrar ou criar uma conta.
Olá,
Selecionar uma conta diferente.
Você tem várias contas
Escolha a conta com a qual você deseja entrar.

Uma subconsulta é uma instrução SELECT aninhada dentro de um SELECT, SELECT... INTO, INSERT... INSTRUção INTO, DELETE ou UPDATE ou dentro de outra subconsulta.

Sintaxe

Você pode usar três formas de sintaxe para criar uma subconsulta:

comparação [ANY | ALL | SOME] (sqlstatement)

expressão [NOT] IN (sqlstatement)

[NÃO] EXISTS (sqlstatement)

Uma subconsulta tem estas partes:

Parte

Descrição

Comparação

Um expressão e um operador de comparação que compara a expressão com os resultados da subconsulta.

expressão

Uma expressão para a qual o conjunto de resultados da subconsulta é pesquisado.

instruçãosql

Uma instrução SELECT, seguindo o mesmo formato e regras que qualquer outra instrução SELECT. Ele deve ser fechado em parênteses.


Comentários

Você pode usar uma subconsulta em vez de uma expressão na lista de campo de uma instrução SELECT ou em uma cláusula WHERE ou HAVING. Em uma subconsulta, você usa uma instrução SELECT para fornecer um conjunto de um ou mais valores específicos para avaliar na expressão de cláusula WHERE ou HAVING.

Use o predicado ANY ou SOME, que são sinônimos, para recuperar registros na consulta main que satisfaçam a comparação com todos os registros recuperados na subconsulta. O exemplo a seguir retorna todos os produtos cujo preço unitário é maior que o de qualquer produto vendido com desconto de 25% ou mais:

SELECT * FROM Products WHERE UnitPrice > ANY (SELECT UnitPrice FROM OrderDetails WHERE Discount >= .25);

Use o predicado ALL para recuperar apenas esses registros na consulta main que satisfaçam a comparação com todos os registros recuperados na subconsulta. Se você alterou ANY para ALL no exemplo anterior, a consulta retornará apenas os produtos cujo preço unitário é maior que o de todos os produtos vendidos com desconto de 25% ou mais. Isso é muito mais restritivo.

Use o predicado IN para recuperar apenas esses registros na consulta main para a qual algum registro na subconsulta contém um valor igual. O exemplo a seguir retorna todos os produtos com um desconto de 25% ou mais:

SELECT * FROM Products WHERE ProductID IN (SELECT ProductID FROM OrderDetails WHERE Discount >= .25);

Por outro lado, você pode usar NOT IN para recuperar apenas os registros na consulta main para a qual nenhum registro na subconsulta contém um valor igual.

Use o predicado EXISTS (com a palavra opcional NÃO reservada) em comparações true/false para determinar se a subconsulta retorna algum registro.

Você também pode usar aliases de nome de tabela em uma subconsulta para se referir a tabelas listadas em uma cláusula FROM fora do subconsulta. O exemplo a seguir retorna os nomes de funcionários cujos salários são iguais ou maiores que o salário médio de todos os funcionários com o mesmo cargo. A tabela Funcionários recebe o alias "T1":

SELECT LastName, FirstName, Title, Salary FROM Employees AS T1 WHERE Salary >= (SELECT Avg(Salary) FROM Employees WHERE T1.Title = Employees.Title) Order by Title;

No exemplo anterior, o palavra reservada AS é opcional.

Algumas subconsultas são permitidas em consultas cruzadas – especificamente, como predicados (aquelas na cláusula WHERE). As subconsultas como saída (aquelas na lista SELECT) não são permitidas em consultas cruzadas.



Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?
Ao pressionar enviar, seus comentários serão usados para aprimorar os produtos e serviços da Microsoft. Seu administrador de TI poderá coletar esses dados. Política de Privacidade.

Agradecemos seus comentários!

×