Entrar com a conta da Microsoft
Entre ou crie uma conta.
Olá,
Selecione 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 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 [QUALQUER | TODOS os | 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 colocado entre parênteses.


Comentários

Você pode usar uma subconsulta em vez de uma expressão na lista de campos 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 a serem avaliados na expressão da cláusula WHERE ou HAVING.

Use o predicado ANY ou SOME, que são sinônimos, para recuperar registros na consulta principal que satisfazem 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 um desconto de 25% ou mais:

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

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

Use o predicado IN para recuperar somente os registros na consulta principal para os quais 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 principal para os quais nenhum registro na subconsulta contém um valor igual.

Use o predicado EXISTS (com a palavra reservada NOT opcional) em comparações true/false para determinar se a subconsulta retorna registros.

Você também pode usar aliases de nome de tabela em uma subconsulta para fazer referência a tabelas listadas em uma cláusula FROM fora da subconsulta. O exemplo a seguir retorna os nomes dos funcionários cujos salários são iguais ou maiores que o salário médio de todos os funcionários que têm 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 as palavra reservada é opcional.

Algumas subconsultas são permitidas em consultas de tabela de referência cruzada , especificamente, como predicados (aqueles na cláusula WHERE). Subconsultas como saída (aquelas na lista SELECT) não são permitidas em consultas de tabela de referência cruzada.



Precisa de mais ajuda?

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar Microsoft Office Insider

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?

Obrigado pelos seus comentários!

×