sql系列(基础篇)-第二章约束和排序数据(三)

2014-11-24 17:02:49 · 作者: · 浏览: 5
300 10 SCOTT@ORCL>select * from emp 2 where deptno=10 3 order by sal asc; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7934 MILLER CLERK 7782 23-JAN-82 1300 10 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7839 KING PRESIDENT 17-NOV-81 5000 10 SCOTT@ORCL>select * from emp 2 where deptno=10 3 order by sal; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7934 MILLER CLERK 7782 23-JAN-82 1300 10 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7839 KING PRESIDENT 17-NOV-81 5000 10 例:将emp表中20号部门的员工信息按照sal列降序排列 SCOTT@ORCL>select * from emp 2 where deptno=20 3 order by sal desc; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7566 JONES MANAGER 7839 02-APR-81 2975 20 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7369 SMITH CLERK 7902 17-DEC-80 800 20 5.2 如果order by 后面跟多个字段,则将结果集先按照第1个字段进行排序【条件1】, 再按第2个字段进行排序【条件2】; 注意:【条件1】如果按照第1个字段分不开先后顺序的时候,才会按照第2个字段排序; asc 或者desc 影响的字段,仅仅是它紧挨着的那个字段; 例:将emp表中10号部门的员工信息按sal降序排列,empno升序排列; SCOTT@ORCL>select * from emp 2 where deptno=10 3 order by sal desc,empno asc; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7839 KING PRESIDENT 17-NOV-81 5000 10 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7934 MILLER CLERK 7782 23-JAN-82 1300 10 例:将emp表中20号部门的员工信息按照empno 降序排列,sal升序排列; SCOTT@ORCL>select * from emp 2 where deptno=20 3 order by empno desc,sal asc; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7566 JONES MANAGER 7839 02-APR-81 2975 20 7369 SMITH CLERK 7902 17-DEC-80 800 20 5.3 除了可以使用字段排序,还可以使用字段所在的先后位置排序; 确定字段在表中的先后顺序; SCOTT@ORCL>
set lines 100 SCOTT@ORCL>desc emp; Name Null Type ----------------------------------------------------- -------- ------------------------------------ EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(10) JOB VARCHAR2(9) MGR NUMBER(4) HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER(2) 例:将emp表中10号部门的员工信息按sal降序排列,empno升序排列; SCOTT@ORCL>select * from emp 2 where deptno=10 3 order by 6 desc,1 asc; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7839 KING PRESIDENT 17-NOV-81 5000 10 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7934 MILLER CLERK 7782 23-JAN-82 1300 10 例:将emp表中20号部门的员工信息按照empno 降序排列,sal升序排列; SCOTT@ORCL>select * from emp 2 where deptno=20 3 order by 1 desc,6 asc; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7566 JONES MANAGER 7839 02-APR-81 2975 20 7369 SMITH CLERK 7902 17-DEC-80 800 20 5.4 除了可以使用number 类型的字段进行排序外,还可以使用字符串或