物理行号和逻辑行号的问题?

煜知搬砖者 2002-12-30 05:02:44
rownum是物理行号,罗几行号是啥?请指教。多谢。
...全文
56 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
beckhambobo 2002-12-31
  • 打赏
  • 举报
回复
sorry,修改以下:

for v_sor in t_sor(m,n) loop
.......
end loop;


beckhambobo 2002-12-31
  • 打赏
  • 举报
回复
declare
cursor t_sor(a number,b number) is
select * from (select rownum rm,AA.* from tablename AA order by number) where rm<=a and rm>=b;
m number:=1;
n number:=5;
begin
for num in m..n loop
for v_sor in t_sor loop
.......
end loop;
m:=m+5;
n:=n+5;
end loop;
end;
煜知搬砖者 2002-12-31
  • 打赏
  • 举报
回复
to :bzszp
按照你的方法当然可以取出数据,但是取出来的数据是表中的物理顺序
而我要求是排序之后的顺序,所以。。。。
煜知搬砖者 2002-12-31
  • 打赏
  • 举报
回复
就是这样取数据,每次只取五条
第一次1-5条
第二次6-10条
第三次11-15条。。。。
beckhambobo 2002-12-31
  • 打赏
  • 举报
回复
select * from (select rownum rm,a.* from tablename a order by number) where rm<=m and rm>=n;

不明白表达的一次往后推是什么意思?
bzszp 2002-12-31
  • 打赏
  • 举报
回复
select id,rowno from (select rownum rowno,tablename.* from tablename ) where rowno>10 and rowno<16; //11-15条,自己改吧
煜知搬砖者 2002-12-31
  • 打赏
  • 举报
回复
呵呵,这样当然能取前五条,但是我想取6-10条呢?一次往后推,11-15条呢?
beckhambobo 2002-12-30
  • 打赏
  • 举报
回复
意思是前五条吧?
select id,rownum from (select * tablename order by number) where rownum<=5;
煜知搬砖者 2002-12-30
  • 打赏
  • 举报
回复
如下:
select id,rownum from tablename order by number
结果如下:
id rownum

3 6
5 5
31 24
7 12
9 11
12 32
34 65
......
但是我想每次取出5条
但是这样写无效:
select id,rownum from tablename where rownum>=1 and rownum<6

又什么好的方法做到每次只取5条?
请指教:
beckhambobo 2002-12-30
  • 打赏
  • 举报
回复
rowid是物理存储,rownum记录行数.

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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