问题
显示部门10中员工的名字、职位和工资,并按照工资的升序排列。结果集如下所示:
ENAME JOB SAL ---------- --------- ---------- MILLER CLERK 1300 CLARK MANAGER 2450 KING PRESIDENT 5000
解决方案
使用ORDER BY子句:
select ename,job,sal from emp where deptno = 10 order by sal asc
讨论
使用ORDER BY子句可以对查询结果排序。该解决方案按照SAL的升序对行进行排列。默认情况下,ORDER BY按照升序方式排列,所以ASC子句是可选的。用DESC表示降序排列。
select ename,job,sal from emp where deptno = 10 order by sal desc
ENAME JOB SAL ---------- --------- ---------- KING PRESIDENT 5000 CLARK MANAGER 2450 MILLER CLERK 1300
不一定要指定排序所基于的列名,也可以给出表示这列的编号。该编号从1开始,从左到右依次对应SELECT列表中的各项目。例如:
select ename,job,sal from emp where deptno = 10 order by 3 desc
ENAME JOB SAL ---------- --------- ---------- KING PRESIDENT 5000 CLARK MANAGER 2450 MILLER CLERK 1300
例子中ORDER BY子句中的3与SELECT列表中的第3列想对应,也就是SAL。