比如说搜索引擎,
同一个主题可能select到有几十万个相关内容,但是每页只能显示10(或20)个内容。如果在select相关网页的时候一次性全部检索出所有的内容势必浪费服务器资源。
我的问题是:用什么办法能实现select时首先只检索第一页所需要的叶面,点击下一页时显示第二页内容....
同一个主题可能select到有几十万个相关内容,但是每页只能显示10(或20)个内容。如果在select相关网页的时候一次性全部检索出所有的内容势必浪费服务器资源。
我的问题是:用什么办法能实现select时首先只检索第一页所需要的叶面,点击下一页时显示第二页内容....
解决方案 »
- 高手请进!Ora-00600 4194错误你能处理吗?
- 数据链路为何处于非活动状态?
- oracle 未写入文档的参数介绍
- ORA-02041: 客户数据库未开始一个事务处理
- distributed transaction waiting for lock这是什么错误啊?急
- 请教关于oracle里面的SID?
- 当用EXECUTE IMMEDIATE执行SQL语句中的参数个数也是动态的?用什么方法实现?
- 怎样在SQL*Plus中运行存储过程,在线等待!!!
- 哪里有oracle9i企业版下载啊?不要从oracle 公司下载,我没有帐号
- 交叉表(其实是一个视图)的建立____help,help,help!!!_study,study,you and me!!!
- 关于脚本中远程连接时,发生异常
- 请问这条奇怪的语句是什么意思????
试试
或
select * from table where rownum between 10 and 20
什么都检索不到阿
select last_name,salary from employees order by nvl(salary,0) desc)) e
where r between 6 and 10;
最里面的select已经是全表扫描了
rownum是当前sql所有返回结果的排序值。
举的例子,是取“所有返回结果”的第6~10条记录。
---------- ------------------------------
1 SYSTEM
2 ACCTMAN
3 DGEXP
4 OVSEE
5 SBSINTF
6 LBSINTF
7 PACARINTF
8 REINSINTF
9 PTYACC_OPR
10 TEST_1
11 ACCTINTF
12 PCISETLOPR
13 TEST
14 PCISETL14 rows selected
row_number()函数,可以在分组和排序的基础上进行编号。
thomas Kyte的expert one-on-one oracle(oracle专家高级编程)
中有一章是关于分析函数的,你可以看看
(
select rownum as ROWNO ,t.* from (
select TAB_recv.* from TAB_recv
order by msgno Desc
) t
where rownum <= 200010 )
where ROWNO >= 200000这种是最快的了.......row_number()函数,确实写出来的代码短,但速度只在最后面几页快。一般查都是查前面的,所以不用这个.....
select * from (
Select ROW_NUMBER() OVER ( ORDER BY msgno desc ) as ROW_NUMBER
,TAB_recv.*
from TAB_recv
) where ROW_NUMBER between 300000 and 300010