Logo Passei Direto
Buscar

Bases de Dados

ESTÁCIO EAD
As subconsultas aninhadas são consultas dentro de outras consultas no SQL. Elas permitem que resultados de uma consulta sejam usados como entrada para outra consulta. Essa técnica é útil para realizar consultas complexas e filtrar dados com base em condições específicas. As subconsultas aninhadas são encapsuladas entre parênteses e podem ser usadas em cláusulas WHERE, HAVING, SELECT e outras, permitindo uma maior flexibilidade na manipulação e recuperação de dados. Qual das seguintes opções mostra corretamente a sintaxe de uma subconsulta aninhada no SQL Server? A SELECT * FROM Tabela1 WHERE Coluna1 = (SELECT Coluna2 FROM Tabela2 WHERE Coluna3 = Valor); B SELECT * FROM Tabela1 JOIN (SELECT Coluna2 FROM Tabela2 WHERE Coluna3 = Valor) AS Sub ON Tabela1.Coluna1 = Sub.Coluna2; C SELECT * FROM Tabela1 WHERE Coluna1 IN (SELECT Coluna2 FROM Tabela2 WHERE Coluna3 = Valor); D SELECT * FROM Tabela1 WHERE Coluna1 = ANY (SELECT Coluna2 FROM Tabela2 WHERE Coluna3 = Valor); E SELECT * FROM Tabela1 WHERE EXISTS (SELECT Coluna2 FROM Tabela2 WHERE Coluna3 = Valor);
User badge image
Guto Lourenco

há 24 horas

Respostas

User badge image

Ed Verified user icon

há 24 horas

Vamos analisar as opções apresentadas para identificar qual delas mostra corretamente a sintaxe de uma subconsulta aninhada no SQL Server. A) `SELECT * FROM Tabela1 WHERE Coluna1 = (SELECT Coluna2 FROM Tabela2 WHERE Coluna3 = Valor);` - Esta opção é uma subconsulta aninhada válida, onde o resultado da subconsulta é usado para comparar com `Coluna1`. B) `SELECT * FROM Tabela1 JOIN (SELECT Coluna2 FROM Tabela2 WHERE Coluna3 = Valor) AS Sub ON Tabela1.Coluna1 = Sub.Coluna2;` - Esta opção utiliza uma subconsulta, mas não é uma subconsulta aninhada no sentido tradicional, pois está usando um JOIN. C) `SELECT * FROM Tabela1 WHERE Coluna1 IN (SELECT Coluna2 FROM Tabela2 WHERE Coluna3 = Valor);` - Esta opção também é uma subconsulta aninhada válida, onde o resultado da subconsulta é usado para verificar se `Coluna1` está dentro do conjunto retornado. D) `SELECT * FROM Tabela1 WHERE Coluna1 = ANY (SELECT Coluna2 FROM Tabela2 WHERE Coluna3 = Valor);` - Esta opção é válida, mas a cláusula `ANY` não é tão comum quanto o uso de `=` ou `IN` em subconsultas aninhadas. E) `SELECT * FROM Tabela1 WHERE EXISTS (SELECT Coluna2 FROM Tabela2 WHERE Coluna3 = Valor);` - Esta opção utiliza a cláusula `EXISTS`, que é uma forma de subconsulta, mas não é uma subconsulta aninhada no sentido de retornar um valor específico para comparação. Dentre as opções, tanto a A quanto a C são subconsultas aninhadas válidas. No entanto, a opção C é mais comum e flexível, pois permite que `Coluna1` compare com múltiplos valores retornados pela subconsulta. Portanto, a resposta correta é: C) SELECT * FROM Tabela1 WHERE Coluna1 IN (SELECT Coluna2 FROM Tabela2 WHERE Coluna3 = Valor);

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais conteúdos dessa disciplina