--rownum select * from emp; select rownum,e.* from emp e; select rownum,e.* from emp e where rownum < 5 --显示前4条 select rownum,e.* from emp e where rownum <= 5 --显示前5条 select rownum,e.* from emp e where rownum = 5 --找不到记录 因为编号为5重新从1开始 select rownum,e.* from emp e where rownum > 5 --找不到记录 select rownum,e.* from emp e where rownum >= 5 --找不到记录 select rownum,e.* from emp e order by sal desc; -- order by ,rownum失效 -->解决方案:用子查询 --分页 取编号6-10得记录 select rownum,e.* from emp e where rownum <= 10 minus select rownum,e.* from emp e where rownum <= 5 --分页(带排序) 取编号6-10的记录 方法1: select rownum,t.* from( select e.* from emp e order by sal ) t where rownum <=10 minus select rownum,t.* from( select e.* from emp e order by sal) t where rownum <= 5 --分页(带排序)取编号6-10的记录 方法2: select e.* from emp e order by sal --1.以工资排序 获取所有记录 select rownum,t.* from ( select e.* from emp e order by sal) t where rownum <=10 --2.获取前10条记录 select t2.* from( select rownum rn,t.* from ( select e.* from emp e order by sal) t where rownum <=10 --3.从前10条记录中获取6-10的记录 )t2 where rn > 5