(200分)在jsp中,调用怎样的oracle的sql语句实现快速分页?是top还是rownum?最好给个例子????????????

zhangsq 2003-04-27 07:01:48
急等例子!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
...全文
66 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ttjs2002 2003-05-03
  • 打赏
  • 举报
回复
2 times IO ->minus
1 times IO ->Rownum
dawnzdy 2003-04-28
  • 打赏
  • 举报
回复
nicholaz:我也这样写过,但当用于多表查询时首行的*就被告知是未定义的列。你看我写的:

select rid, user_id, user_name, user_dept,user_position, user_salary from ( select rownum rid, info.user_id, info.user_name, zdy_salary.* from info, salary where info.user_id=salary.user_id order by info.user_id ) where rid between 1 and 5;


写成这样,首行的user_id还是不能识别。

zhangsq:借宝地一用。:)

若是单表查询完全同意楼上的。

  • 打赏
  • 举报
回复
rownum
nicholaz 2003-04-28
  • 打赏
  • 举报
回复
用rownum

你写一个过程,传入参数 页号,页显示数

select * from (
select rownum r,。。。 from tbname)
where r between (页号-1)*页显示数
and 页号*页显示数;

你在jsp中调用过程就可以了
fantree 2003-04-28
  • 打赏
  • 举报
回复
select * from table where rownum<20 minus
select * from table where rownum<40
pengdali 2003-04-28
  • 打赏
  • 举报
回复
用rownum速度比top快!


select * from (select rownum id,* from 表名) where id>10 and id < 21
wxjcn 2003-04-28
  • 打赏
  • 举报
回复
用rownum可以解决。楼上的各位说得很清楚了。

select * from (
select rownum r,owner,object_name from dba_objects
order by object_id)
where r<11
/

select * from (
select rownum r,owner,object_name from dba_objects
order by object_id)
where r>10 and r<=20(也可使用where r between 10 and 21)
/
leoiong 2003-04-27
  • 打赏
  • 举报
回复
我觉得这个方法不是很好,如果数据量很大的话,会花掉很长的时间。建议只用rownum < 。然后再用集合运算符去处理。
yuxuan 2003-04-27
  • 打赏
  • 举报
回复
select * from (
select rownum r,owner,object_name from dba_objects
order by object_id)
where r<11
/

select * from (
select rownum r,owner,object_name from dba_objects
order by object_id)
where r>10 and r<=20
/
以次类推分页
zhangsq 2003-04-27
  • 打赏
  • 举报
回复
up

3,499

社区成员

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

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