Использовать псевдоним в Select Query - PullRequest
8 голосов
/ 03 ноября 2011

Мне нужно спросить, как можно использовать Alias ​​в Select Query,

Мне нужно это

SELECT (Complex SubQuery) AS A, (Another Sub Query WHERE ID = A) FROM TABLE

Ответы [ 3 ]

13 голосов
/ 03 ноября 2011

Вы не можете сделать это:

SELECT (Complex SubQuery) AS A, (Another Sub Query WHERE ID = A) FROM TABLE

Однако вы можете сделать это:

SELECT (Another Sub Query WHERE ID = A.somecolumn)
FROM table
JOIN SELECT (Complex SubQuery) AS A on (A.X = TABLE.Y)

Или

SELECT (Another Sub Query)
FROM table
WHERE table.afield IN (SELECT Complex SubQuery.otherfield)

Проблема в том, что вы не можете ссылаться на псевдонимы, подобные этому, в предложениях SELECT и WHERE, потому что они не будут оценены к моменту выбора или где выполняется часть.
Вы также можете использовать предложение having, но наличие предложений не использует индексы, и их следует избегать, если это возможно.

2 голосов
/ 03 ноября 2011

Вы можете переписать ваш запрос следующим образом

SELECT Complex.A, (Another Sub Query WHERE ID = Complex.A)
FROM TABLE
CROSS JOIN ((Complex SubQuery) AS A) Complex
0 голосов
/ 21 октября 2016

Другое решение, которое вы можете использовать:

SELECT (Complex SubQuery) AS A, (Another Sub Query WHERE ID = A) 
FROM 
TABLE MAIN
OUTER APPLY (SELECT (Complex SubQuery) AS A)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...