Oracle 学习笔记(九)

分页查询

上次笔记学到分页查询的三种方式:rowid、分析函数和 rownum,这次笔记重点学 rownum 方式的分页查询。

1. 查询 emp 表为例

SELECT * FROM emp;    

 

2. 显示 rownum (由系统自己分配) 

SELECT e.*, ROWNUM rn FROM (SELECT * FROM emp) e; 

rn 相当于 Oracle 分配的行 ID 号 

 

3.查询出 6-10 条记录 

a.先查出 1-10 条记录 

SELECT e.*, ROWNUM rn FROM (SELECT * FROM emp) e WHERE ROWNUM <= 10; 不是后面直接加上 and rownum >=6 ! 

b. 后查出 6-10 条记录 (再包一层 select 加 where rn >= 6)

SELECT * FROM (SELECT e.*, ROWNUM rn FROM (SELECT * FROM emp) e WHERE ROWNUM <= 10) WHERE rn >= 6; 

 

4. 查询的变化 

a. 指定查询列,只需修改最里层的子查询 

查询员工的编号和工资,第 6 -10 条数据 

SELECT * FROM (SELECT e.*, ROWNUM rn FROM (SELECT ename, sal FROM emp) e WHERE ROWNUM <= 10) WHERE rn >= 6; 

 

b. 排序查询,也只需修改最里层的子查询 

按工资排序后查询,第 6 -10 条数据 

SELECT * FROM (SELECT e.*, ROWNUM rn FROM (SELECT ename, sal FROM emp ORDER BY sal) e WHERE ROWNUM <= 10) WHERE rn >= 6; 

 

今天笔记做到这,后续有空继续。

posted @ 2019-05-13 22:32  Stephen_java  阅读(148)  评论(0编辑  收藏  举报