ORACLE查询前五条数据

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的实际操作方法,下面就是对其具体操作方案的介绍,望你会有所收获。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

以下的文章主要介绍的是如何在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(抽出记录数)

  1. 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语句如下所示:

  1. SELECT * FROM
  2. (SELECT * FROM CUSTOMER ORDER BY NAME)
  3. WHERE ROWNUM <= 3
  4. ORDER BY ROWNUM ASC

输出结果为:

ID NAME

08 eighth

05 fifth

01 first

上述的相关内容就是对在Oracle实现SELECT TOP N的方法的描述,希望会给你带来一些帮助在此方面。

时间: 2024-10-12 22:00:14

ORACLE查询前五条数据的相关文章

SQL查询前五条数据及其他所有数据之和

知识管理反馈系统中,分析知识检索的办公室(北京上海天津香港纽约东京....苏州)来源,我需要查询哪些办公室次数较多,排出前5个,并计算出剩余所有部门的查询次数之和. 数据库是mysql. 1 拼出前五个 select sum(count) as total,location from tb_person group by location limit 5; 2.检索其他所有 理论上应该是: select '其它',sum(count) from tb_person where location

sql 查询前十条数据

-- oracle sql 查询前十条数据 select * from b2c_code where rownum <= '10'; -- sql server 查询前十条数据 select top 10 * from b2c_code;

Oracle 查询出来的数据取第一条

Oracle 查询出来的数据取第一条 --------------------------------------------------------------------------- 转载自:http://www.itpub.net/thread-246442-1-1.html select * from (select * from <table> order by <key>) where rownum=1; select * from (select * from &l

Oracle查询前10条记录及分页查询(第5条到第10记录)

如果你想了解Oracle查询前10条记录的相关实际应用方案的话,你就可以点击以下的文章对其在实际相关操作中的正确用法,有一个更加完善的认识,希望你在浏览完以下的文章会以下就是正文的详细内容的介绍. 在Oracle怎样查询表中的top10条记录呢? select *   from test   where rownum <=10   下面是关于rownum的介绍 Rownum和row_number() over()的使用 ROWNUM是Oracle从8开始提供的一个伪列,是把SQL出来的结果进行编

Oracle查询前几条数据的方法

在Oracle中实现select top N:由于Oracle不支持select top 语句,所以在Oracle中经常是用order by 跟rownum的组合来实现select top n的查询.简单地说,实现方法如下所示:select 列名1 ...列名n from(select 列名1 ...列名n    from 表名 order by 列名1)where rownum <=N(抽出记录数)order by rownum asc 如:select id,name from (selec

oracle查询重复的数据

在oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是oracle中的哪一个数据文件.块.行上.在重复的记录中,可能所有列的内容都相同,但rowid不会相同.使用rowid,SQL语句如下 select * from tbl a where rowid not in (select max(b.rowid) from tbl b where a.col1=b.col1 and a.col2 = b.col2)

oracle查询前N条数据的两种方式

在实际用途中,常常会要求取表中前几条纪录,就有以下两种方式来获取数据: 先排序后查询: SELECT * FROM (SELECT * FROM 表 m ORDER BY create_time DESC) WHERE ROWNUM <= 10 , 先查询后排序: SELECT *  FROM 表 m  WHERE ROWNUM <= 10 ORDER BY create_time DESC; 原文地址:https://www.cnblogs.com/zoushiyu/p/9746550.ht

oracle 查询前30条数据

 select * from (select a.*,rownum as rn from tetm_ad_type  a) b where b.rn<30 --表名不能用as 字段取别名,直接在表名后面跟一个newName 就算别名了.字段 名能够用as 取别名.  事实上我都是乱写的. oralce

oracle查询多行数据合并成一行数据

如果是oracle 10g以上 一个wm_concat函数就可以解决. 如果是oracle 9i以下就有点麻烦了. 表结构如下: NAME Null Type ------------------------ --------- ----- N_SEC_CODE NOT NULL CHAR(6) C_RESEARCHER_CODE NOT NULL VARCHAR2(20) 此表保存了“股票”与“研究员”的对应关系数据,一般而言,对于同一只股票而言,可能有多个研究员 对其进行跟踪研究.所以目前遇