收藏 分享(赏)

如何在Oracle中实现SELECT TOP N的方法.doc

上传人:gnk289057 文档编号:12260561 上传时间:2021-12-06 格式:DOC 页数:6 大小:48KB
下载 相关 举报
如何在Oracle中实现SELECT TOP N的方法.doc_第1页
第1页 / 共6页
如何在Oracle中实现SELECT TOP N的方法.doc_第2页
第2页 / 共6页
如何在Oracle中实现SELECT TOP N的方法.doc_第3页
第3页 / 共6页
如何在Oracle中实现SELECT TOP N的方法.doc_第4页
第4页 / 共6页
如何在Oracle中实现SELECT TOP N的方法.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、如何在 Oracle 中实现 SELECT TOP N 的方法本文通过举例的方式来教你如何在 Oracle中实现 SELECT TOP N的方法。 1.在 Oracle中实现 SELECT TOP N : 由于 ORACLE不支持 SELECT TOP语句,所以在 ORACLE中经常是用 ORDER BY跟 ROWNUM的组合来实现 SELECT TOP N的查询。 简单地说,实现方法如下所示: SELECT 列名列名 FROM (SELECT 列名列名 FROM 表名 ORDER BY 列名列名) WHERE ROWNUM M的部分的数据是基本上不会用到的,我们仅仅是为了说明方便而采用。如上

2、所述,则 SQL语句应为: SELECT 列名列名 FROM ( SELECT ROWNUM RECNO, 列名列名FROM (SELECT 列名列名 FROM 表名 ORDER BY 列名列名) WHERE ROWNUM = (M + X - 1)这个范围内,当然最经济的取值就是取等号的时候了。当然最后的抽取条件也不是 RECNO = N了,应该是 RECNO BETWEEN M AND (M + X - 1)了,所以随之而来的 SQL语句则为: SELECT 列名列名 FROM ( SELECT ROWNUM RECNO, 列名列名FROM (SELECT 列名列名 FROM 表名 ORD

3、ER BY 列名列名) WHERE ROWNUM = (M + X - 1)) ORDER BY ROWNUM ASC ) WHERE RECNO BETWEEN M AND (M + X - 1)同样以上面的数据为例,则抽取 NAME的字母顺的第二条记录开始的 3条记录的 SQL语句为: SELECT ID, NAME FROM ( SELECT ROWNUM RECNO, ID, NAME FROM (SELECT * FROM CUSTOMER ORDER BY NAME) WHERE ROWNUM = (2 + 3 - 1) ORDER BY ROWNUM ASC ) WHERE RECNO BETWEEN 2 AND (2 + 3 - 1)结果如下: ID NAME05 fifth01 first04 forth以此为基础,再扩展的话,做成存储过程,将开始记录数以及抽取记录数为参数,就可以轻松实现分页抽取数据。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报