Instrução de selecção aninhada no servidor de SQL

Alguém me pode ajudar a perceber porque é que o seguinte não funciona?

SELECT name FROM (SELECT name FROM agentinformation)
Acho que a minha compreensão do SQL está errada, porque pensei que isto iria devolver a mesma coisa que

SELECT name FROM agentinformation

a instrução interna select não cria um conjunto de resultados que a instrução externa SELECT procura?

Author: Somnath Muluk, 2011-01-07

2 answers

Precisas de alias o subquery.

SELECT name FROM (SELECT name FROM agentinformation) a  

Ou para ser mais explícito

SELECT a.name FROM (SELECT name FROM agentinformation) a  
 513
Author: Joe Stefanelli, 2011-01-07 20:29:24

A resposta dada por Joe Stefanelli já está correcta.

SELECT name FROM (SELECT name FROM agentinformation) as a  

Precisamos de fazer um pseudónimo de subquery porque a consulta precisa de um objecto de tabela que vamos obter de fazer um pseudónimo para subquery. Conceitualmente, os resultados de subquery são substituídos na consulta externa. Como precisamos de objeto de tabela na consulta externa, precisamos fazer um alias da consulta interna.

As declarações que incluem um subquery normalmente tomam um destes formatos:

  • em que a expressão [não] em (subquery)
  • em que a expressão " comparison_operator "[qualquer / Todos] (subcontingente)
  • onde [não] existe (subcontingente)

Verifique se existem mais regras de subcontingente e tipos de subcontingente.

Mais exemplos de Subcontingente aninhado.

  1. IN / NOT IN-This operator takes the output of inner query after inner query gets executed which can be zero or more values and send it to outer query. A consulta externa Obtém Então toda a correspondência [em operator] or not non matching [NOT IN operator] rows.

  2. ANY- [>ANY or ANY operator takes the list of values produced by inner query and fetches all the values which are greater than the minimum value of the list. O

Por exemplo >qualquer(100, 200, 300), qualquer operador irá obter todos os valores superiores a 100.

  1. ALL - [>all or ALL operator toma a lista de valores produzidos pela consulta interna e obtém todos os valores que são maiores do que o máximo da lista. O

Por exemplo >ALL(100, 200, 300), o operador todo irá obter todos os valores superiores a 300.

  1. existe - a palavra-chave existe produz um valor booleano [verdadeiro/falso]. Isto existe verifica a existência das linhas devolvidas pela sub-consulta.
 29
Author: Somnath Muluk, 2017-05-23 12:18:26