oracle中如何跳到指定行取记录?

syncmaster550 2001-09-06 10:05:00
我用proc的动态方法取记录,想实现从指定行开始取得结果。
最直观的可能就是fetch出一部分不用的记录,但这样肯定不太好,请大虾指点。
谢谢
...全文
283 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
syncmaster550 2001-09-10
  • 打赏
  • 举报
回复
to xjg;order by 之后呢?
xjg 2001-09-09
  • 打赏
  • 举报
回复
下面的语句可实现从TestTable取得rownum大于N的记录:
select * from (select T.*, rownum 行号 from TestTable T) where 行号 > N;
joe225 2001-09-08
  • 打赏
  • 举报
回复
关注
syncmaster550 2001-09-07
  • 打赏
  • 举报
回复
to KingSunSha(弱水三千):
在8.1.5上,rownum是不能用rownum>n的,只能用rownum<n.
另外,我是说用“动态方法做”
KingSunSha 2001-09-07
  • 打赏
  • 举报
回复
我这边执行
SELECT ROWNUM, ....
FROM (SELECT ...
FROM ...
ORDER BY ...)
无法运行,所以也不知道结果怎样。
KingSunSha 2001-09-07
  • 打赏
  • 举报
回复
本来我用rownum来达到这种功能,如下:
select ... from ...
where rownum > n
order by ...
但是最近我发现ORACLE对rownum的支持在有ORDER BY的情况下不准确,而且在我的测试环境下(O7.02, O7.34, O8.05),不能再子查询中使用ORDER BY子句,所以我不敢确定。

有位老兄确切的认为8.15以上版本支持ORDER BY子查询,我没办法试,或者你可以试一下。

但是,如果对一个新建的很小的表做测试的话,SELECT ... FROM ... WHERE ROWNUM >N ORDER BY ... 能得到正确的数据,我测试过了。但是对较大而且经常更新的表,至少我测试下来的结果是不对了
syncmaster550 2001-09-07
  • 打赏
  • 举报
回复
快帮帮忙呀,各位兄台。

2,596

社区成员

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

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