Oracle中的分页查询(一)
1.显示EMP表中的所有数据
结果:SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
7369 SMITH CLERK 7902 1980/12/17 800.00 20
7499 ALLEN SALESMAN 7698 1981/2/20 1600.00 300.00 30
7521 WARD SALESMAN 7698 1981/2/22 1250.00 500.00 30
7566 JONES MANAGER 7839 1981/4/2 2975.00 20
7654 MARTIN SALESMAN 7698 1981/9/28 1250.00 1400.00 30
7698 BLAKE MANAGER 7839 1981/5/1 2850.00 30
7782 CLARK MANAGER 7839 1981/6/9 2450.00 10
7788 SCOTT ANALYST 7566 1987/4/19 3000.00 20
7839 KING PRESIDENT 1981/11/17 5000.00 10
7844 TURNER SALESMAN 7698 1981/9/8 1500.00 0.00 30
7876 ADAMS CLERK 7788 1987/5/23 1100.00 20
7900 JAMES CLERK 7698 1981/12/3 950.00 30
7902 FORD ANALYST 7566 1981/12/3 3000.00 20
7934 MILLER CLERK 7782 1982/1/23 1300.00 10
14 rows selected
2.查询前十条记录
结果:
SQL> select al.*, rownum rn from (select * from emp) al where rownum <= 10;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO RN
----- ---------- --------- ----- ----------- --------- --------- ------ ----------
7369 SMITH CLERK 7902 1980/12/17 800.00 20 1
7499 ALLEN SALESMAN 7698 1981/2/20 1600.00 300.00 30 2
7521 WARD SALESMAN 7698 1981/2/22 1250.00 500.00 30 3
7566 JONES MANAGER 7839 1981/4/2 2975.00 20 4
7654 MARTIN SALESMAN 7698 1981/9/28 1250.00 1400.00 30 5
7698 BLAKE MANAGER 7839 1981/5/1 2850.00 30 6
7782 CLARK MANAGER 7839 1981/6/9 2450.00 10 7
7788 SCOTT ANALYST 7566 1987/4/19 3000.00 20 8
7839 KING PRESIDENT 1981/11/17 5000.00 10 9
7844 TURNER SALESMAN 7698 1981/9/8 1500.00 0.00 30 10
10 rows selected
需注意,在分页查询中,在from子句中使用嵌套视图,必须指定别名,且不能以 表名 as 别名 的形式指定别名。
3.查询表第五条到第十条的记录
结果:
SQL> select * from (select al.*, rownum rn from (select * from emp) al where rownum <= 10) a2 where rn >= 5;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO RN
----- ---------- --------- ----- ----------- --------- --------- ------ ----------
7654 MARTIN SALESMAN 7698 1981/9/28 1250.00 1400.00 30 5
7698 BLAKE MANAGER 7839 1981/5/1 2850.00 30 6
7782 CLARK MANAGER 7839 1981/6/9 2450.00 10 7
7788 SCOTT ANALYST 7566 1987/4/19 3000.00 20 8
7839 KING PRESIDENT 1981/11/17 5000.00 10 9
7844 TURNER SALESMAN 7698 1981/9/8 1500.00 0.00 30 10
6 rows selected