SELECT fieldName
FROM
(
SELECT fieldName, ROW_NUMBER() OVER (ORDER BY fieldName) r FROM myTable
)
WHERE r >= start_row AND r <= end_row; Note: require oracle8i 8.16 or later :)-----------------------------
SELECT fieldName
FROM
(
SELECT fieldName,ROWNUM r
FROM
(
SELECT fieldName FROM myTable WHERE condition ORDER BY fieldName
)
)
WHERE r >= start_row AND r <= end_row;
FROM
(
SELECT fieldName, ROW_NUMBER() OVER (ORDER BY fieldName) r FROM myTable
)
WHERE r >= start_row AND r <= end_row; Note: require oracle8i 8.16 or later :)-----------------------------
SELECT fieldName
FROM
(
SELECT fieldName,ROWNUM r
FROM
(
SELECT fieldName FROM myTable WHERE condition ORDER BY fieldName
)
)
WHERE r >= start_row AND r <= end_row;
解决方案 »
- oracle问题
- 请教oracle数据库中 虚拟数据库的概念~
- 如何用存储过程把表中一个任意结构的xmltype字段 存入一个新数据表中
- 求助一个sql语句
- 更新字段的问题
- 技术问题(急救!!)
- 我建的临时表在function里面怎么不让insert数据?
- 老大们救救我吧,oracle客户端打包问题
- 如何通过SQL语句得到类似于Listener.log文件中的信息 , 包括登入用户名, 登入program ,ip , pc机器名 , 登入时间 ,所做的动作(sql语句).
- 一个简单问题,oracle里的一张表的大小和导出的.dmp文件的大小是否一致?
- 那位高手救救命!!用IMP导人文件出错怎么办
- Oracle中能否用语句返回2个结果集回来。
return pkg.myrctype
as
str varchar2(50);
begin
str:='select * from (select rownum rm,a.* from table_name a) where rm<='||p_n||' and rm>='||p_m;
open p_rc for str;
return p_rc;
end;
/
我有一种想法不知道是否可行。
select * from table_name
where rownum <= 一页中的行数
and rowid > (
select max(rowid) from table_name
where rownum <= ( 当前页码 -1) * 一页中的行数
);
where rownum <= ( 当前页码 -1) * 一页中的行数 rowid不一定按顺序先后排大小的,有可能最后那条记录的rowid比前面那条少。
你说的问题确实存在,但select rownum rm,a.* from table_name 出来的rownum也是按rowid排续的,不是吗?因此select rownum rm,a.* from table_name 也存在同样的问题,而且它还要搜索表中所有数据,降低了查询的速度。
如果需要按找某个列进行排序,则直接将rowid替换成排序的列即可,如果做排序的列有重复的话,你可以再加上rowid做定位不就解决了。
比如:
select * from table_name
where rownum <= 一页中的行数
and 排序的列 || rowid > (
select max(排序的列 || rowid) from table_name
where rownum <= ( 当前页码 -1) * 一页中的行数
);
当然,排序的列 || rowid 中可能要用到类型转换,比如:to_char(),rowidtochar()。
select * from table_name
where rownum <=40
minus
select * from table_name
where rownum <=50;
终结贴http://www.cnoug.org/bin/ut/topic_show.cgi?id=38&h=1&bpg=2&age=0