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

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

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

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

1,创建示例表数据

CREATE TABLE [dbo].[dt_test](    [id] [int] NULL,    [code] [int] NULL,    [name] [varchar](10) NULL)

2,使用column name

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

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

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

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

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

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

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

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

时间: 2024-11-12 14:33:27

TSQL order by 子句中排序列的多种写法的相关文章

sql:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询

执行sql语句: select * from ( select * from tab where ID>20 order by userID desc ) as a order by date desc 逻辑上看着挺对 但是报错: 除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图.内联函数.派生表.子查询和公用表表达式中无效.   只要我们在嵌套子查询视图里面加入: top 100 percent 即可 select * from ( select top 100

五,ORDER BY 子句

五,ORDER BY 子句 ORDER BY 语句用于对结果集进行排序. ORDER BY 语句 ORDER BY 语句用于根据指定的列对结果集进行排序. ORDER BY 语句默认按照升序对记录进行排序. 如果您希望按照降序对记录进行排序,可以使用 DESC 关键字. 原始的表 (用在例子中的): Orders 表: Company OrderNumber IBM 3532 W3School 2356 Apple 4698 W3School 6953 实例 1 以字母顺序显示公司名称: SEL

除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询

报错: 除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图.内联函数.派生表.子查询和公用表表达式中无效. 只要我们在嵌套子查询视图里面加入:top 100 percent即可 例如: select * from ( select top 100 percent * from tb order by col desc ) as a order by col desc

1. 安装Oracle,配置环境 2. 实现查询From子句 3. 实现查询where子句 4. 实现查询order by子句

一.环境安装1. 登录:以管理员身份登录 sqlplus 登录名/密码 管理员身份登录:sqlplus system/1234562. 登录后,导入案例.下载scott.sql文件,执行下面一行的命令 SQL>@"E:\兄弟连文档\oracle\java 19\day01\script\scott.sql"; 此时我们拥有非管理员的用户:scott3. 激活scott的账号,激活用scott可登录 alter user scott identified by tiger; alt

对于order by子句

order by子句指定排序顺序 select username from user order by username; 依据username的字母顺序对于查找出来的username进行排序,默认是升序(A-Z) 也可以进行降序排序,必须指定DESC关键字 在上面的sql语句变为 select username from user order by username desc; 将会变成降序排列. 对于有多个子句的筛选条件来说,一般是先是第一个条件,如果第一个相同,才会去比较第二个. 原文地址

SQL-W3School:SQL ORDER BY 子句

ylbtech-SQL-W3School:SQL ORDER BY 子句 1.返回顶部 1. ORDER BY 语句用于对结果集进行排序. ORDER BY 语句 ORDER BY 语句用于根据指定的列对结果集进行排序. ORDER BY 语句默认按照升序对记录进行排序. 如果您希望按照降序对记录进行排序,可以使用 DESC 关键字. 原始的表 (用在例子中的): Orders 表: Company OrderNumber IBM 3532 W3School 2356 Apple 4698 W3

Oracle系列:(7)order by子句

查询员工信息(编号,姓名,月薪,年薪),按月薪升序排序,默认升序,如果月薪相同,按oracle内置的校验规则排序 select empno,ename,sal,sal*12  from emp  order by sal asc; 查询员工信息(编号,姓名,月薪,年薪),按月薪降序排序 select empno,ename,sal,sal*12  from emp  order by sal desc; 查询员工信息,按入职日期降序排序,使用列名 select empno,ename,sal,h

7.ORDER BY 子句

ORDER BY 语句 ORDER BY 语句用于根据指定的列对结果集进行排序. ORDER BY 语句默认按照升序对记录进行排序. 如果您希望按照降序对记录进行排序,可以使用 DESC 关键字. 1.以时间显示,升序 mysql> select * from Orders order by OrderDate;+------+------------+------------+----------+| O_Id | OrderDate  | OrderPrice | Customer |+--

TSql Merge On子句和When子句理解

Merge 的On子句指定Match condition,When子句指定过滤条件,如果Source Table和Targe Table匹配的上,很好理解:如果匹配不上,必须深入理解不匹配的条件,否则,就很容易出错. 1,创建示例数据 create table dbo.dt_source ( ID int, Code int ) go create table dbo.dt_target ( ID int, Code int ) go insert into dbo.dt_source ( ID