请教,一个送分的题目。

fool_chen 2003-09-01 10:06:29
对一个上千万条数据的表进行全检索,由于数据太多,打算每次检索一万件,然后循环,
也就是说,先检索1-10000条,第二次检索第10001-20000件。

有什么好的方法啊。
不要使用字段名。因为有许多不同的表要多这样的操作。

谢谢了。
...全文
54 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuipipi 2003-09-02
  • 打赏
  • 举报
回复
selec * from (select rownum rm,a.* from table_name a) where rm<=20 and rm>=10;
fool_chen 2003-09-02
  • 打赏
  • 举报
回复
有没有效率高一点的方法呢?
因为上千万条,到最后的话,就会非常慢了。
之所以每次检索一万件,也是从速度的角度考虑的。
fool_chen 2003-09-02
  • 打赏
  • 举报
回复
bzszp(SongZip)的方法好像也不可以。

(select * from 表名 where rownum <=2000)
minus
(select * from 表名 where rownum <1001)
这种方法倒是可以的。
bzszp 2003-09-02
  • 打赏
  • 举报
回复
select * from (select * from tbname where rownum<=20000)
where rownum>10000;
寒若辰 2003-09-02
  • 打赏
  • 举报
回复
可以这样写,但是效率很低:
select * from a where rownum <20000 and rownum not in (select rownum from a where rownum < 10000)

上面几位兄弟写的SQL ORALCE是不支持的。
最好是先数据取出来,然后在程序里面控制打开的数量。
fool_chen 2003-09-02
  • 打赏
  • 举报
回复
select * from a where rownum > 10000 and ruwnum < 20000

这个语句得到的结果是空
fool_chen 2003-09-02
  • 打赏
  • 举报
回复
带rownum的检索语句不可以使用〉
也就是说rownum>10000这个条件好象不可以使用吧。
Wnyu 2003-09-01
  • 打赏
  • 举报
回复
select * from a where rownum<=10000
select * from a where rownum > 10000 and ruwnum <= 20000
Wnyu 2003-09-01
  • 打赏
  • 举报
回复
select * from a where rownum<=10000
select * from a where rownum > 10000 and ruwnum < 20000

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧