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

Kok*_*ila 9 sql-server sorting

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

现在,我想通过计算列对此表进行排序.我不能使用该名称进行排序.

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

And*_*mar 18

在旧版本的SQL Server中,您可以在子查询中定义别名:

select  *
from    (
        select  col1 + col2 as col3
        from    YourTable
        ) SubQueryAlias
order by
        col3
Run Code Online (Sandbox Code Playgroud)

在SQL Server 2008+中,您应该能够order by使用没有子查询的别名:

select  col1 + col2 as col3
from    YourTable
order by
        col3
Run Code Online (Sandbox Code Playgroud)

  • 它也适用于SQL Server 2005和2000.从[SQL Server 2000文档](http://msdn.microsoft.com/en-us/library/aa259187(v = sql.80).aspx)"可以将排序列指定为名称或列别名" (3认同)

Dha*_*val 8

还有一个选项,您可以按照下面的示例中的顺序使用COLUMN INDEX NUMBER

select ACol,AVal,CAST(ACol as varchar(3)) + aval as 'New' from ABC order by 3
Run Code Online (Sandbox Code Playgroud)

这将使用'New'columnd进行排序

  • 它真的是一种简单的排序方式..但需要照顾列顺序.. (2认同)