建索引了吗?
这样行不行?
select * from (select nownum idnum,* from table) where idnum >6000000 and idnum<700000;要一次性取那么多?负担好重咯!

解决方案 »

  1.   

    select * from table_name where rownum between 600000 and 700000 order by id;
      

  2.   

    select * from (
    select t.*,rownum rn from (
    select t.* from tname t order by id
    ) t

    where rn >= 600000
    and rn < 700000Thanks
    Hima
      

  3.   

    xiaohu1983000(等你出现)的方法好像不行
      

  4.   

    select * from 
      (select * from 
         (select rownum as rid,a.* from table a order by id) 
         where rid <= 700000 
      ) where rid >= 600000
      

  5.   

    select top 100000 * from (select top 700000 * from table order by id) t order by t.id desc

    select top 100000 * from table where id not in(select top 500000 id from table order by id)
      

  6.   

    可以将xiaoxiao1984(潇潇)的方法做一些改进
    select * from 
      (select rownum as rid,a.* from table a where rownum <= 700000 order by id) 
    where rid >= 600000
      

  7.   

    c_jiazheng() 的方法只适合小数据量
      

  8.   

    top 用在大数据量运行速度会非常慢
      

  9.   

    考虑到效率问题,可以这样处理。
    create table copy_table as select * from table where rownum<70000;
    delete from copy_talbe where rownum<60000;