12

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

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

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

4

2 回答 2

20

在旧版本的 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
于 2013-05-06T11:51:48.167 回答
12

还有一个选项,您可以按顺序使用 COLUMN INDEX NUMBER,如以下示例所示

select ACol,AVal,CAST(ACol as varchar(3)) + aval as 'New' from ABC order by 3

这将使用“新”列进行排序

于 2013-05-06T14:25:54.070 回答