zoukankan      html  css  js  c++  java
  • Oracle DB Order By子句

    • 使用ORDER BY 子句
    • 使用ORDER BY 子句可对检索行进行排序:
    – ASC :升序,默认顺序
    – DESC:降序
    • ORDER BY 子句位于SELECT 语句的最后:
    hr@TEST0924> SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date ;

    LAST_NAME                 JOB_ID     DEPARTMENT_ID HIRE_DATE
    ------------------------- ---------- ------------- ------------------
    De Haan                   AD_VP                 90 13-JAN-01
    Mavris                    HR_REP                40 07-JUN-02
    Baer                      PR_REP                70 07-JUN-02

    查询结果中返回行的顺序是未定义的。可使用ORDER BY 子句对这些行进行排序。但是,如果使用ORDER BY 子句,该子句必须是SQL 语句的最后一个子句。此外,可以指定表达式、别名或列位置作为排序条件。
    语法
    SELECT expr
    FROM table
    [WHERE condition(s)] 
    [ORDER BY {column , expr, numeric_position} [ASC|DESC]];
    在该语法中:
    ORDER BY:指定检索行的显示顺序
    ASC:按升序对行进行排序(此为默认顺序)
    DESC:按降序对行进行排序
    如果没有使用ORDER BY 子句,则排序顺序未定义,因此如果同一查询执行两次,Oracle Server  每次提取行的顺序可能不同。使用ORDER BY 子句可按特定顺序显示行。
    注:使用关键字 NULLS FIRST 或NULLS LAST可指定包含空值的返回行是出现在排序序列的最前面还是最后。


    • 排序
    • 按降序排序:
    SELECT   last_name, job_id, department_id, hire_date
    FROM     employees
    ORDER BY hire _date DESC ;
    • 按列别名排序:
    SELECT employee_id, last_name, salary*12 annsal
    FROM   employees
    ORDER BY annsal ;


    默认排序顺序是升序:
    • 从小到大显示数值,例如1  到999。
    • 由远到近显示日期值,例如,01-JAN-92  显示在 01-JAN-95  之前。
    • 按字母顺序显示字符值,例如,先显示A,最后显示Z。
    • 对于升序排序,空值显示在最后,对于降序排序,则显示在最前面。
    • 也可以按不在SELECT 列表之内的列进行排序。
    示例:
    1. 要使行的显示顺序反转,请在ORDER BY 子句中在列名之后指定DESC 关键字。
    示例中按最近聘用的雇员对结果进行排序。
    2. 此外,还可在ORDER BY 子句中使用列别名。示例中按年薪对数据进行排序。
    注:请勿将此处用于按降序排序的 DESC 关键字与用于描述表结构的DESC 关键字混淆。


    • 使用列的数字位置进行排序:
    SELECT   last_name, job_id, department_id, hire_date
    FROM     employees
    ORDER BY 3;
    通过在SELECT 子句中指定列的数字位置可对查询结果排序。示例中按department_id 对结果进行排序,因为该列在SELECT 子句中位于第三位。
    • 按多个列进行排序:
    SELECT last_name,  department_id, salary
    FROM   employees
    ORDER BY department_id, salary DESC;
    可按多个列对查询结果进行排序。排序的列限制是给定表中的列数。在ORDER BY子句中,可以指定列并使用逗号分隔列名。如果希望反转列顺序,请在列名后指定DESC。示例中显示的查询示例结果按department_id 的升序、salary  的降序排序。
  • 相关阅读:
    Oracle根据两点经纬度计算距离(转载)
    TCP小见解
    git describe功能实现
    UE中基本图形的原始大小是多大
    SQL多行合并与HTML组装,不转义特殊字符
    磁盘空间不足引起ftp报"553 Could not create file"
    一键安装包安装lnmp
    宝塔面板(Linux版)安装与使用
    Redhat7-yum本地源安装配置
    Oracle数据库多个表空间使用情况查询
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13316908.html
Copyright © 2011-2022 走看看