在"选择查询"中使用别名

use*_*567 8 sql sql-server oracle

我需要问一下如何在Select Query中使用Alias,

我需要这个

SELECT (Complex SubQuery) AS A, (Another Sub Query WHERE ID = A) FROM TABLE
Run Code Online (Sandbox Code Playgroud)

Joh*_*ica 13

你不能做这个:

SELECT (Complex SubQuery) AS A, (Another Sub Query WHERE ID = A) FROM TABLE
Run Code Online (Sandbox Code Playgroud)

但是你可以这样做:

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

要么

SELECT (Another Sub Query)
FROM table
WHERE table.afield IN (SELECT Complex SubQuery.otherfield)
Run Code Online (Sandbox Code Playgroud)

问题是你不能在SELECT和WHERE子句中引用这样的别名,因为它们在select或执行部件的时候不会被评估.
您也可以使用having子句,但有子句不使用索引,应尽可能避免使用.