zoukankan      html  css  js  c++  java
  • SQL Cookbook:二、查询结果排序(2)按多个字段排序

     问题

        在EMP表中,首先按照DEPTNO的升序排序,然后按照工资的降序排序,结果集应该如下所示:

    EMPNO

    DEPTNO

    SAL

    ENAME

    JOB

    ----------
    ----------
    ---------
    ----------
    ---------
    7839
    10
    5000
    KING
    PRESIDENT
    7782
    10
    2450
    CLARK
    MANAGER
    7934
    10
    1300
    MILLER
    CLERK
    7788
    20
    3000
    SCOTT
    ANALYST
    7902
    20
    3000
    FORD
    ANALYST
    7566
    20
    2975
    JONES
    MANAGER
    7876
    20
    1100
    ADAMS
    CLERK
    7369
    20
    800
    SMITH
    CLERK
    7698
    30
    2850
    BLAKE
    MANAGER
    7499
    30
    1600
    ALLEN
    SALESMAN
    7844
    30
    1500
    TURNER
    SALESMAN
    7521
    30
    1250
    WARD
    SALESMAN
    7654
    30
    1250
    MARTIN
    SALESMAN
    7900
    30
    950
    JAMES
    CLERK

    解决方案

        在ORDER BY子句中列出不同的排序列,使用逗号分隔:

    select empno,deptno,sal,ename,job
    from emp
    order by deptno, sal desc

    讨论

        在ORDER BY中,优先次序是从左到右。如果在SELECT列表中使用列的数字位置进行排序,那么这个数值必须不能大于SELECT列表中项目的数目。一般情况下都可以执照SELECT列表中没有的列来排序,但是必须显式地给出排序的列名。如果在查询中使用GROUP BY或DISTINCT则不能按照SELECT列表中没有的列来排序。

    版权说明:作者:张颖希PocketZ's Blog
    出处:http://www.cnblogs.com/PocketZ
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

    本文翻译内容取自网络,纯粹是练习英文水平,如有雷同,纯属意外!有不妥之处,欢迎拍砖!

  • 相关阅读:
    setTimeOut 和 setInterval对比
    vue官方源码剖析
    Taro 总结
    地图相交
    vscode 配置文件
    redis持久化的几种方式
    推荐.Net、C# 逆向反编译四大工具利器
    【转】Java 通过JDBC连接Mysql数据库的方法和实例【图文说明】
    【摘】Oracle 11g EM安全证书问题无法访问的解决办法
    MySql 从SQL文件导入
  • 原文地址:https://www.cnblogs.com/PocketZ/p/Sorting_by_Multiple_Fields.html
Copyright © 2011-2022 走看看