2014-03-06 45 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