抽取从N行到M行的记录,如从20行到30行的记录 [A]select * from (select rownum id,t.* from table where …… and rownum <= 30) where id > 20;
select ....from ... where rownum>=20 and rownum<=30
我们经常要访问数据集的某一个中间部分,例如第10到第20条记录,Oracle中有一个很好语句来实现,那就是with。以下是使用的例子: with partdata as (select rownum rowno,t.* from table1 t where t.id>200407160000) select * from partdata where rowno between 10 and 20 当然还有别的方法,但我目前测试这种方法的速度最快。以上代码在Oracle 9i中测试通过 8i: select * from (select t.*,rownum id from larget1 t) where id between 21 and 30
最好: select * from (select t.*,rownum id from larget1 t) where id between 21 and 30
[A]select * from (select rownum id,t.* from table where ……
and rownum <= 30) where id > 20;
with partdata as (select rownum rowno,t.* from table1 t where t.id>200407160000)
select * from partdata where rowno between 10 and 20
当然还有别的方法,但我目前测试这种方法的速度最快。以上代码在Oracle 9i中测试通过
8i:
select * from (select t.*,rownum id from larget1 t)
where id between 21 and 30
select * from (select t.*,rownum id from larget1 t)
where id between 21 and 30