一、分页查询:
rownum:是数据库中提供的一个伪列,作用是给记录分配行号,从1开始此时不能做区间查询,只能查询前多n条数据。
--练习:查询员工信息,同时显示行号
select rownum,e.* from emp e;
--练习:查询前5条员工信息
select * from emp where rownum<=5;
使用伪列做区间查询,只能先查询前n条后,当成行内视图,同时显示行号,另起别名,之后再做范围查询,此时rn列是可以作为条件使用
--练习:查询员工表中的第6条到第10条数据
select * from (select rownum rn,e.* from emp e where rownum<=10) where rn between 6 and 10;
--练习:第pagenow页,每页的记录数pagesize,每页3条记录,查询第5页
select * from (select rownum rn,e.* from emp e) where rn between 13 and 15
--练习:按照按照工资降序排序,每页三条,查询第5页数据
select * from (select rownum rn,e.* from (select * from emp order by sal desc) e) where rn between 13 and 15
--练习:查询员工信息及其部门平均工资,按照部门号升序排序,查询第三页数据每页5条
select * from (select rownum rn,b.* from (select e.*,f.avg_sal from emp e,
(select deptno,avg(sal) avg_sal from emp group by deptno) f where e.deptno=f.deptno order by e.deptno) b)
where rn between 11 and 15;