tablas - Declaración de selección anidada en SQL Server
subquery sql server ejemplos (2)
¿Puede alguien ayudarme a entender por qué lo siguiente no funciona?
SELECT name FROM (SELECT name FROM agentinformation)
Supongo que mi comprensión de SQL es errónea, porque hubiera pensado que esto devolvería lo mismo que
SELECT name FROM agentinformation
¿No crea la instrucción de selección interna un conjunto de resultados que la instrucción SELECT externa luego consulta?
Necesitas alias la subconsulta.
SELECT name FROM (SELECT name FROM agentinformation) a
o para ser mas explícito
SELECT a.name FROM (SELECT name FROM agentinformation) a
Answer proporcionada por Joe Stefanelli ya es correcta.
SELECT name FROM (SELECT name FROM agentinformation) as a
Necesitamos hacer un alias de subconsulta porque la consulta necesita un objeto de tabla que obtendremos de hacer un alias a subconsulta. Conceptualmente, los resultados de la subconsulta se sustituyen en la consulta externa. Como necesitamos el objeto de tabla en la consulta externa, necesitamos hacer un alias de consulta interna.
Las declaraciones que incluyen una subconsulta normalmente toman uno de estos formatos:
- DONDE expresión [NO] EN (subconsulta)
- DONDE expresión de comparación_operador [CUALQUIER | TODO] (subconsulta)
- DONDE [NO] EXISTE (subconsulta)
Compruebe si hay más reglas de subconsulta y tipos de subconsulta .
Más ejemplos de subconsulta anidada.
IN / NOT IN: este operador toma la salida de la consulta interna después de que se ejecuta la consulta interna, que puede ser cero o más valores, y la envía a la consulta externa. La consulta externa luego obtiene todas las filas [Operador IN] coincidentes o no coincidentes [Operador NO ENTRADA].
CUALQUIER - [> CUALQUIER o CUALQUIER operador toma la lista de valores producidos por la consulta interna y recupera todos los valores que son mayores que el valor mínimo de la lista. los
por ejemplo, ANY (100,200,300), el operador ANY obtendrá todos los valores superiores a 100.
- ALL - [> ALL o ALL operator toma la lista de valores producidos por la consulta interna y recupera todos los valores que son mayores que el máximo de la lista. los
por ejemplo,> ALL (100,200,300), el operador ALL obtendrá todos los valores superiores a 300.
- EXISTS: la palabra clave EXISTS produce un valor booleano [VERDADERO / FALSO]. Este EXISTS verifica la existencia de las filas devueltas por la sub consulta.