2014-03-06 46 views
0

我得到這個:列別名,以便通過

select ..., sum(value) as Total_Value 
from ... 
order by Total_Value 

長話短說,爲什麼是ORDER BY在這裏工作?
不是列別名應該只能在select的select上選擇一個select?
爲什麼它在相同的選擇內工作?使用Oracle 11,我被告知「Order by」中的列別名可能會給遷移帶來問題,這有多遠?

+2

您正在使用哪些DBMS? –

+0

也許這可以幫助你一點點 - http://docs.oracle.com/cd/E17952_01/refman-5.6-en/problems-with-alias.html – Betlista

回答

2

ORDER BY在先前查詢完成後調用。 Order BY接收表格作爲輸入。所以,如果

select ..., sum(value) as Total_Value 
from ... 

作品則

select ..., sum(value) as Total_Value 
from ... 
order by Total_Value 

也會起作用。

+0

將這個列別名順序遷移到另一個數據庫經理 – Alpha2k

+0

我認爲這很標準。儘管大多數數據庫不允許你在where子句中使用它。 – Andrew

+0

看來,它適用於Oracle,MySQL和MSSQL - http://sqlfiddle.com/#!3/81cd5/1。如何從'order by'移動到'where'',這是另一個問題...... – Betlista