![](https://www.jinchutou.com/images/s.gif)
怎样在Oracle中实现SELECT TOPN的方法
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 = N(抽出记录数) ORDER BY ROWNUM ASC下面举个例子简单说明一下。 顾客表customer(id,name)有如下数据: ID NAME 01 first02 Second03 third04 forth05 fifth06 sixth07 seventh08 eighth09 ninth10 tenth11 last则按NAME的字母顺抽出前三个顾客的SQL语句如下所示: SELECT * FROM (SELECT * FROM CUSTOMER ORDER BY NAME)
2、 WHERE ROWNUM = 3 ORDER BY ROWNUM ASC输出结果为: ID NAME08 eighth05 fifth01 first2.在TOP N纪录中抽出第M(M = N)条记录: 在得到了TOP N的数据之后,为了抽出这N条记录中的第M条记录,我们可以考虑从ROWNUM着手。我们知道,ROWNUM是记录表中数据编号的一个隐藏子段,所以可以 在得到TOP N条记录的时候同时抽出记录的ROWNUM,然后再从这N条记录中抽取记录编号为M的记录,即是我们希望得到的结果。 从上面的分析可以很容易得到下面的SQL语句: SELECT 列名列名 FROM ( SELECT ROWNUM RECNO, 列名列名FROM (SELECT 列名列名 FROM 表名 ORDER BY 列名列名) WHERE ROWNUM = N(抽出记录数) ORDER BY ROWNUM ASC ) WHERE RECNO = M(M = N)同样以上表的数据为基础,那么得到以NAME的字母顺排序的第二个顾客的信息的SQL语句应该这样写: SELECT ID, NAME FROM ( SELEC
《怎样在Oracle中实现SELECT TOPN的方法》由会员luobi****88888分享,可在线阅读,更多相关《怎样在Oracle中实现SELECT TOPN的方法》请在金锄头文库上搜索。
![南开大学《计算机组成原理》笔记-随堂笔记](/Images/s.gif)
2023-09-25 37页
![北京林业大学《计算机组成原理》笔记-总结期末复习资料](/Images/s.gif)
2023-09-25 10页
![《计算机网络》笔记-各章汇总](/Images/s.gif)
2023-09-25 33页
![《数据结构》笔记-期末复习知识点](/Images/s.gif)
2023-09-25 26页
![盘点那些高逼格的sql写法](/Images/s.gif)
2023-04-03 8页
![全程干货:新手小白快速入门sql教程SQL基本书写规则](/Images/s.gif)
2023-04-03 4页
![经典常用SQL 基础知识数据库与 SQL](/Images/s.gif)
2023-04-03 8页
![2022年CSP-S第二轮C++真题源码解析1](/Images/s.gif)
2023-03-29 10页
![2022年CSP-J第二轮C++真题源码解析2](/Images/s.gif)
2023-03-22 10页
![2022年CSP-J第二轮C++真题源码解析1](/Images/s.gif)
2023-03-20 8页