SQL 多字段排序

SQL 多字段排序,针对 EMP 表的数据,你想先按照 DEPTNO 升序排列,然后再按照 SAL 降序排列。你希望返回如下所示的结果集。

SQL 多字段排序 问题

针对 EMP 表的数据,你想先按照 DEPTNO 升序排列,然后再按照 SAL 降序排列。你希望返回如下所示的结果集。

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

SQL 多字段排序 解决方案

ORDER BY 子句中列出不同的排序列,以逗号分隔。

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

SQL 多字段排序 扩展知识

ORDER BY 的执行顺序是从左到右的。如果使用 SELECT 列表项对应的位置序号来指定排序项,那么这个数字序号不能大于 SELECT 列表里的项目个数。一般而言,你也可以根据一个没有被包含在 SELECT 列表里的列来排序,但必须明确地指定列名。不过,如果你的查询语句里有 GROUP BYDISTINCT,那么就不能按照 SELECT 列表之外的列进行排序。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程