tengo que preguntar cómo se puede utilizar alias en consulta de selección,uso de alias en consulta de selección
puedo necesitar este
SELECT (Complex SubQuery) AS A, (Another Sub Query WHERE ID = A) FROM TABLE
tengo que preguntar cómo se puede utilizar alias en consulta de selección,uso de alias en consulta de selección
puedo necesitar este
SELECT (Complex SubQuery) AS A, (Another Sub Query WHERE ID = A) FROM TABLE
No se puede hacer esto:
SELECT (Complex SubQuery) AS A, (Another Sub Query WHERE ID = A) FROM TABLE
Sin embargo, puede hacer esto:
SELECT (Another Sub Query WHERE ID = A.somecolumn)
FROM table
JOIN SELECT (Complex SubQuery) AS A on (A.X = TABLE.Y)
O
SELECT (Another Sub Query)
FROM table
WHERE table.afield IN (SELECT Complex SubQuery.otherfield)
El problema es que no se puede hacer referencia a los alias de este tipo en las cláusulas SELECT y WHERE, porque no se han evaluado en el momento de la selección o donde se ejecuta parte.
También puede usar una cláusula having
, pero al tener cláusulas no se usan índices, y se deben evitar si es posible.
?? Quizás quisiste decir: 'WHERE ID = A.Socketcolumn' –
Tú (y el OP) están usando' A' como un alias de tabla y como un alias de columna (en diferentes lugares). –
@ycubcube, lo arregló ahora. – Johan
Puede volver a escribir su consulta como esta
SELECT Complex.A, (Another Sub Query WHERE ID = Complex.A)
FROM TABLE
CROSS JOIN ((Complex SubQuery) AS A) Complex
Otra solución que se puede utilizar:
SELECT (Complex SubQuery) AS A, (Another Sub Query WHERE ID = A)
FROM
TABLE MAIN
OUTER APPLY (SELECT (Complex SubQuery) AS A)
Sospecho que la respuesta es cambiar su expresión 'SubQuery' escalar complejo en una expresión de tabla, pero es difícil depurar código que no podemos ver. – onedaywhen
Estoy de acuerdo contigo. Necesito hacer esta consulta eficiente. – user960567