ORACLE不支持TOP N
select * from (select * from T_WEIXIN_HOMEWORK order by SUBSTR(HOMETITLE,0,10) desc ) where rownum<=5 order by rownum
我们今天主要和大家讨论的是Oracle实现 SELECT TOP N的实际操作方法,下面就是对其具体操作方案的介绍,望你会有所收获。
以下的文章主要介绍的是如何在Oracle实现 SELECT TOP N的实际操作方法,我们主要是以举例子的方式来引出Oracle实现 SELECT TOP N的具体操作,以下就文章的具体内容的描述,望你会有所收获。
1.在Oracle实现SELECT TOP N
由于Oracle不支持SELECT TOP语句,所以在Oracle中经常是用ORDER BY跟ROWNUM的组合来实现SELECT TOP N的查询。
简单地说,Oracle实现SELECT TOP N的方法如下所示:
SELECT 列名1...列名n FROM
(SELECT 列名1...列名n FROM 表名 ORDER BY 列名1...列名n)
WHERE ROWNUM <= N(抽出记录数)
- ORDER BY ROWNUM ASC
下面举个例子简单说明一下。
顾客表customer(id,name)有如下数据:
ID NAME
01 first
02 Second
03 third
04 forth
05 fifth
06 sixth
07 seventh
08 eighth
09 ninth
10 tenth
11 last
则按NAME的字母顺抽出前三个顾客的SQL语句如下所示:
- SELECT * FROM
- (SELECT * FROM CUSTOMER ORDER BY NAME)
- WHERE ROWNUM <= 3
- ORDER BY ROWNUM ASC
输出结果为:
ID NAME
08 eighth
05 fifth
01 first
上述的相关内容就是对在Oracle实现SELECT TOP N的方法的描述,希望会给你带来一些帮助在此方面。