我有一个sql select语句,其中包含一些从其他列或表计算的列。我使用As关键字为此列命名。
现在,我想按计算列对此表进行排序。 我无法使用该名称进行排序。
有人请帮助使用计算列对sql表进行排序。
答案 0 :(得分:18)
在旧版本的SQL Server中,您可以在子查询中定义别名:
select *
from (
select col1 + col2 as col3
from YourTable
) SubQueryAlias
order by
col3
在SQL Server 2008+中,您应该能够order by
没有子查询的别名:
select col1 + col2 as col3
from YourTable
order by
col3
答案 1 :(得分:8)
另外一个选项可以按顺序使用COLUMN INDEX NUMBER,如下面的示例所示
select ACol,AVal,CAST(ACol as varchar(3)) + aval as 'New' from ABC order by 3
这将使用'New'columnd进行排序