【转】Oracle中搜索Top N的问题
2006-10-14 17:15
197 查看
Oracle 不支持 TOP 关键字:不过这个好像并不十分严重,因为它提供了 rownum 这个隐式游标,可以实现与 TOP 类似的功能,如:
SELECT TOP 10 ... FROM WHERE ...
要写成
SELECT ... FROM ... WHERE ... AND rownum <= 10
rownum 是记录序号(1,2,3...),但有一个比较麻烦的事情是:如果 SQL 语句中有 ORDER BY ... 排序的时候,rownum 居然是先“标号”后排序!这样,这个序号如果不加处理是不合乎使用需求的。
至于临时表,Oracle 的临时表和 SQL Server 的有很大不同。
根据这篇文章的介绍,可以如下分页:
SELECT * FROM
(
SELECT A.*, rownum r
FROM
(
SELECT *
FROM Articles
ORDER BY PubTime DESC
) A
WHERE rownum <= PageUpperBound
) B
WHERE r > PageLowerBound;
其中蓝色部分可以改为任意的、需要的 SQL SELECT 语句,这点倒是挺方便的。
SELECT TOP 10 ... FROM WHERE ...
要写成
SELECT ... FROM ... WHERE ... AND rownum <= 10
rownum 是记录序号(1,2,3...),但有一个比较麻烦的事情是:如果 SQL 语句中有 ORDER BY ... 排序的时候,rownum 居然是先“标号”后排序!这样,这个序号如果不加处理是不合乎使用需求的。
至于临时表,Oracle 的临时表和 SQL Server 的有很大不同。
根据这篇文章的介绍,可以如下分页:
SELECT * FROM
(
SELECT A.*, rownum r
FROM
(
SELECT *
FROM Articles
ORDER BY PubTime DESC
) A
WHERE rownum <= PageUpperBound
) B
WHERE r > PageLowerBound;
其中蓝色部分可以改为任意的、需要的 SQL SELECT 语句,这点倒是挺方便的。
相关文章推荐
- 我眼中的linux命令用于oracle的问题诊断——TOP命令
- 11-Oracle入门之rownum伪列--Top-N问题
- oracle 前台页面输入框中模糊搜索值传入后台问题
- oracle top n 问题
- Oracle Top N 和 Oracle中的limit问题解决方案
- Oracle学习(七)----查询Top—N问题 & 相关子查询
- ORACLE的层次搜索问题
- oracle top n 问题
- Oracle-TOP-N和分页问题
- Oracle_SQL常见问题(TOPM~N)_02
- oracle的Top n时排序问题
- oracle安装和卸载遇到的问题(网络搜索整理)
- DB2 UDB 7、ORACLE 8i、SQL SERVER 7数据库中SELECT TOP N 问题 (转发)
- oracle引起一些问题
- div 的scrollTop增长问题
- Oracle的关于session的销毁资源回收问题的解决方案
- 多个版本的Python同时连接Oracle和安装cx_Oracle问题解决
- Oracle-01-学习内容&安装遇到的问题记录
- linux修改主机名 无法识别oracle sid 的问题
- ORACLE 数据库建了非法表后无法操作和删除问题