且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

TSQL order by 子句中排序列的多种写法

更新时间:2022-08-12 16:59:40

Order by 子句用于对结果进行排序,执行顺序位于select子句之后,排序列有4中写法:

  • column_name
  • column_alias,由于order by子句的执行顺序位于select子句之后,因此,可以使用列的别名;
  • nonnegative integer,用于表示select子句中column的位置,位置从1开始;
  • Column Expression

也可以指定多列排序,每一列只能出现一次,排序的规则是先按照第一列排序,其次按照第二排序,然后按照第三列等排序,依次类推。

1,创建示例表数据

TSQL order by 子句中排序列的多种写法
CREATE TABLE [dbo].[dt_test]
(
    [id] [int] NULL,
    [code] [int] NULL,
    [name] [varchar](10) NULL
)
TSQL order by 子句中排序列的多种写法

2,使用column name

select id,code,name 
from dbo.dt_test dt with(nolock)
order by dt.id

TSQL order by 子句中排序列的多种写法

3,使用Column Alias,order by子句中能够使用Alias的原因是,SQL Server Engine先执行select 子句,后执行order by 子句。

select id as OrderID,code,name 
from dbo.dt_test dt with(nolock)
order by OrderID

TSQL order by 子句中排序列的多种写法

4,使用column order来进行排序,即使用一个正整数来表Select clause中column的顺序来进行排序

select id ,code,name 
from dbo.dt_test dt with(nolock)
order by 1

TSQL order by 子句中排序列的多种写法

5,使用column expression来进行排序,执行顺序是先计算Column Expressino的值,然后对查询的结果进行排序。

select id ,code,name 
from dbo.dt_test dt with(nolock)
order by id+code

TSQL order by 子句中排序列的多种写法

6,使用column expression来进行排序,执行顺序是先计算Column Expressino的值,然后对查询的结果进行排序。

select id ,code,name 
from dbo.dt_test dt with(nolock)
order by id%3

TSQL order by 子句中排序列的多种写法

作者悦光阴
本文版权归作者和博客园所有,欢迎转载,但未经作者同意,必须保留此段声明,且在文章页面醒目位置显示原文连接,否则保留追究法律责任的权利。
分类: SQL Server





本文转自悦光阴博客园博客,原文链接:http://www.cnblogs.com/ljhdo/p/4883198.html,如需转载请自行联系原作者