使用别名列对Sql表进行排序

时间:2013-05-06 11:49:59

标签: sql-server sorting

我有一个sql select语句,其中包含一些从其他列或表计算的列。我使用As关键字为此列命名。

现在,我想按计算列对此表进行排序。 我无法使用该名称进行排序。

有人请帮助使用计算列对sql表进行排序。

2 个答案:

答案 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进行排序