我的需求是在ORACLE的一张表里面获取如第1条到第20000条数据,第20000条到第40000条记录,按批次把所要记录都打印出来
------最佳解决方案--------------------
select *
from (select t.*, rownum rn from t order by rowid) t1
where t1.rn between 1 and 2000; --第1条到第2000条
------其他解决方案--------------------
查询1到20000行数据就行了吧 加个条件就行了 很简单 不知道什么意思
------其他解决方案--------------------
表中有无唯一标识的字段,如果没有,可以考虑用排名函数 OR ROWID
------其他解决方案--------------------
关键是表里没有标识,只能按照顺利来
------其他解决方案--------------------
按照什么顺序
------其他解决方案--------------------
用where就行了吧
------其他解决方案--------------------
没明白你的意思,用rownum不行么?
select * from (select rownum,t.* from table t) where rownum>=20000 and rownum<=40000
自己做个循环
------其他解决方案--------------------
就是SQL分页吧? 楼上的那个 用rownum
------其他解决方案--------------------
select 批次 from 表 where rownum<=10000
union all
select 批次 from 表 where rownum>=20000 and rownum<=40000;
------其他解决方案--------------------
用这个就可以,对啊
------其他解决方案--------------------
where 后面的 rownum可以这样写吗, 要对T 里面的取个别名吧,
------其他解决方案--------------------
select XX from 表 where rownum<=10000;
select XX from 表 where rownum>=20000 and rownum<=40000;
------其他解决方案--------------------
是分页吗
、
------其他解决方案--------------------
楼上的rownum就可以解决了
------其他解决方案--------------------
12楼的rownum可以解决的吧