May 2025
Intermediate to advanced
570 pages
7h 38m
Chinese
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
本章的重点是自定义查询结果的外观。通过了解如何控制结果集的组织方式,可以提供更可读、更有意义的数据。
您想显示第 10 部门员工的姓名、职位和工资,并根据工资从低到高排序。您希望返回以下结果集:
ENAME JOB SAL ---------- --------- ---------- MILLER CLERK 1300 CLARK MANAGER 2450 KING PRESIDENT 5000
使用 ORDER BY 子句:
1 select ename,job,sal 2 from emp 3 where deptno = 10 4 order by sal asc
通过 ORDER BY 子句,可以对结果集中的行进行排序。解决方案会根据 SAL 以升序对行排序。默认情况下,ORDER BY 将以升序排序,因此 ASC 子句是可选的。或者,指定 DESC 以降序排序:
select ename,job,salfrom empwhere deptno = 10order by sal descENAME JOB SAL ---------- --------- ---------- KING PRESIDENT 5000 CLARK MANAGER 2450 MILLER CLERK 1300
您无需指定要排序的列的名称。您可以指定一个代表列的数字。数字从 1 开始,从左到右匹配 SELECT 列表中的项目。例如
select ename,job,salfrom empwhere deptno = 10order by 3 descENAME JOB SAL ---------- --------- ---------- KING PRESIDENT 5000 CLARK MANAGER 2450 MILLER CLERK 1300
本例 ORDER BY 子句中的数字 3 与 SELECT 列表中的第三列 SAL 相对应。
您想首先按 DEPTNO 升序,然后按工资降序对 EMP 中的记录进行排序。您希望返回以下结果集:
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 子句中列出不同的排序列,用逗号分隔: ...
Read now
Unlock full access