分页查询

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

1. 查询 emp 表为例

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

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; 

 

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

Oracle 学习笔记(九) 随笔 第1张Oracle 学习笔记(九) 随笔 第2张

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄