先给出一条错误的方法
select * from table where rownum<=20 and rownum>=10;
这种方式是不正确的
rownum是伪列只能用(<,<=,!=)不能用(>,>=,=,between...and..)
这里的不能用,不是指使用了会产生语法错误,
而是查询后不能返回结果,或者返回的结果不知所云
1.
select * from table where rownum<=20
minus
select * from table where rownum<10
先将前20列的数据取得,这里使用minus将20列数据中的前9条数据去掉
就获得了第10-20条数据
2
select * from (select table.*,rownum r from table) where r between 10 and 20;
既然rownum不能使用(>,>=,=,between...and..),就将rownum取出来赋给一个变量
此时,变量就可以做rownum不可以做的操作了