- 论坛徽章:
- 0
|
遇到一个小问题请各位指点一下
我想在一个select返回的结果集中,一次取出指定条数的数据(其中已经不方便在用where条件来限定了,)
还是举个例子更清楚点
- select * from user where tdate='20060804'
复制代码
得到结果可能有100行,我想一次取出其中的10行来进行处理,也就是第一次取出1~10的,第二次取出11~20的……
我用rownum实现了一下,但是好像在8i上有bug,在9i上没有问题,不知道原因了
我是这么实现的:
- select rownum,field1,field2,… from user
- where tdate='20060804' and rownum<=$num+10
- minus select rownum,field1,field2,… from user
- where rownum<$num
复制代码
现在在9i上是没有什么问题,但是在8i上就是$num不能大于31,即使设置$num大于了31,可显示的时候还是从31开始显示,也就是不管$num设置多大,但是都还是从31开始取得数据。这是什么原因呢??
我还试验了一下想利用结果集来取得,但是没有成功
- select *
- from (
- select rownum,field1,field2,… from user
- where tdate='20060804'
- )
- where rownum>10 and rownum<=20
复制代码
这样没能成功
不知道各位还有没有什么好办法,请指教一下,先谢过了! |
|