zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    mysql int类型 int(11) 和int(2)区别
    mysql 用户 登陆 权限相关
    【转】ext4+delalloc造成单次写延迟增加的分析
    write 系统调用耗时长的原因
    【转】通过blktrace, debugfs分析磁盘IO
    win7 wifi热点
    【SystemTap】 Linux下安装使用SystemTap源码安装SystemTap
    pdflush进程介绍与优化【转】
    How to find per-process I/O statistics on Linux
    oom_killer
  • 原文地址:https://www.cnblogs.com/ljhdo/p/4883198.html
Copyright © 2011-2022 走看看