`
lgstarzkhl
  • 浏览: 336303 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

ORACLE 取前几条记录

阅读更多
1. 最佳选择:利用分析函数


row_number() over ( partition by col1 order by col2 )
比如想取出100-150条记录,按照tname排序

select tname,tabtype from (
select tname,tabtype,row_number() over ( order by tname ) rn from tab
)
where rn between 100 and 150;



2. 使用rownum 虚列


select tname,tabtype from (
select tname,tabtype,rownum rn from tab where rownum <= 150
)
where rn >= 100;


注释:使用序列时不能基于整个记录集合来进行排序,假如指定了order by子句,排序的的是选出来的记录集的排序。


在ORACLE如果想取一张表按时间排序后的前5条最新记录: 方法一\二对,方法三错

SELECT  GUID,title,content FROM

(SELECT  GUID,title,content, row_number() over (order by releasetime desc)tm

FROM web_LO_Article WHERE funID=20 and content like '%<img %')

WHERE tm between 1 and 5



或者:select * from (select * from  web_LO_Article where funID=20 and content like '%<img %' order by releasetime desc)where rownum<6



ROW_NUMBER() 就是生成一个顺序的行号,而他生成顺序的标准,就是后面紧跟的OVER(ORDER BY ReportID)



SELECT  GUID,title,content,releaseTime
FROM web_LO_Article

WHERE funID=20 and rownum<6 and content like '%<img %'  order by releaseTime desc



方法三表示:查询数据库中的前5条数据,然后在对它们按时间降序排列。

select * from (select row_number() over(order by id) rn from et_sys_treebase) where rn between 3 and 5
表的记录就可以查询出来,结果是从3到5的记录
分享到:
评论

相关推荐

    查询前几条记录

    "查询前几条记录"这个主题聚焦于如何从数据库表中提取出最早添加或者最相关的若干条数据。这在很多场景下都非常有用,例如展示最新的新闻、加载用户最近的操作记录等。 在SQL语言中,有一个非常常见的方法来实现这...

    Oracle多行记录合并

    本篇文章将详细介绍Oracle中实现多行记录合并的几种方法,包括使用SQL函数、集合操作以及自定义函数。 1. **使用SQL函数:** - **`LISTAGG()` 函数:** 这是Oracle 11g及以后版本引入的一个强大的聚合函数,专门...

    Oracle里抽取随机数的多种方法

    如果 tmp_1 记录比较多(10 万条以上),我们也可以找一个约大于两百行的表(假如是 tmp_3)来生成 tmp_2: create table tmp_2 as select trunc(dbms_random.value(1,5000)) as id from tmp_3 where rownum; 最后...

    Oracle结合Mybatis实现取表TOP 10条数据

    Oracle数据库在处理“取表TOP 10条数据”这类需求时,与SQL Server或MySQL等其他数据库系统有所不同。在Oracle中,没有直接的`TOP`关键字,而是使用`ROWNUM`来限制返回的行数。本文将详细介绍如何在Oracle数据库中...

    Oracle 多行记录合并_连接_聚合字符串的几种方法_oracle_脚本之家1

    Oracle数据库在处理多行记录合并、连接和聚合字符串时,有多种方法,下面将详细介绍其中的几种常见技术。 1. 被集合字段范围小且固定型 这种方法适用于字段值有限且已知的情况。通过使用`DECODE`函数,我们可以为每...

    Oracle字段转字符串/多行记录合并/连接/聚合字符串的几种方法

    在Oracle数据库中,有时我们需要将多个字段值转换为单个字符串,或者将多行记录合并成一行,这在数据处理和报告生成时尤其常见。Oracle提供了多种方法来实现这一目标,包括使用内置函数、PL/SQL过程以及一些高级特性...

    wxh Oracle数据库删除重复记录的方法

    以下将详细介绍几种在Oracle数据库中有效删除重复记录的技术。 ### 1. 使用临时表删除重复记录 这种方法涉及创建一个临时表来存储唯一的数据行,然后清空原始表,并重新插入从临时表获取的数据。具体步骤如下: 1...

    oracle 取某个时间段的数据(每周几的上午几点到几点)

    此外,描述中还提到了在Oracle中获取某条记录的最新版本的几种方法: 1. **第一种方式**:使用`max`函数结合子查询,找到特定条件下(如`customer_code`)的最新`INVALID_TIME`。 2. **第二种方式**:先对数据按`...

    在oracle中灵活使用Rownum和rowId

    - **限制查询结果数量**:比如只需要查询前几条记录。 - **分页查询**:例如,实现每页显示固定数量的记录。 ##### 3. ROWNUM 的使用示例 假设我们有一个名为 `SALE` 的表,包含月份(`MONTH`)和销售额(`SELL`)...

    Oracle中用Rowid查找和删除表中的重复记录

    这种方法首先找出所有重复记录,然后仅保留每个重复记录组中Rowid最小的一条记录,其余记录全部删除。 2. **基于Rowid的比较** ```sql DELETE FROM cz a WHERE a.ROWID (SELECT MAX(ROWID) FROM cz b WHERE a.c1...

    Oracle查询重复数据与删除重复记录方法

    ROWID是Oracle中一个特殊的数据类型,它代表了表中每一条记录在物理存储上的唯一地址。利用ROWID可以非常高效地查询和定位到某条特定的记录。 **查询重复数据示例** 假设有一个人员表`peosons`,我们需要找出其中...

    Oracle计算连续天数,计算连续时间,Oracle连续天数统计

    在Oracle数据库中,计算连续天数或连续时间是一项常见的需求,尤其在数据分析、报表生成或者业务规则检查等场景。这个任务通常涉及到日期处理和逻辑判断,Oracle提供了丰富的日期函数和运算符来支持这类操作。本篇...

    对于 Oracle 的 rownum 问题

    如果你用&gt;,&gt;=,=,between...and这些条件,因为从缓冲区或数据文件中得到的第一条记录的rownum为1,则被删除,接着取下条,可是它的rownum还是1,又被删除,依次类推,便没有了数据。 有了以上从不同方面建立起来的...

    Oracle 多表查询优化

    在 FROM 子句中包含多个表的情况下,需要选择记录条数最少的表作为基础表。 2. 使用绑定变量 在 Oracle 中,使用绑定变量可以提高多表连接的效率。绑定变量可以减少 SQL 语句的解析时间和内存的使用。 3. 使用...

    oracle分页查询

    如果想取得排序后的前几条记录,需要使用子查询来实现。 Hibernate 实现分页查询 Hibernate 也可以实现分页查询,例如: ```java Query q = session.createQuery("from Cat as c"); q.setFirstResult(20000); q....

    运用Java如何存取Oracle中的CLOB类型字段

    - 使用`select content from test where id = 1 for update`查询第一条记录,并获取CLOB对象。 - 使用`CLOB.setString()`方法设置CLOB的内容。 - 使用`PreparedStatement`和`setClob()`方法更新CLOB数据。 - 对...

    SpringBoot定时任务实现Oracle和mysql数据同步

    - **增量同步**:只同步自上次同步以来发生变化的数据,这需要在数据库中记录每个数据的最后修改时间。 - **全量同步**:每次同步都获取全部数据,适合于数据量不大或者初始同步的情况。 - **异步处理**:为了避免...

    ROWNUM的使用技巧

    我们可以使用 ROWNUM 实现 Top N 结果输出,例如如果我们希望取输出结果的前面几条数据,可以使用以下 SQL 语句: ```sql select * from t_test4 where rownum ; ``` 这将返回结果中的前 5 条记录。 分页查询 ...

    ORACLEEBS_FORM

    - **Form 实现复制上条记录**:实现了复制上一条记录的功能。 - **控制删除条件的触发器**:通过触发器来控制数据删除的条件。 - **实现进度条**:如何在Form中实现进度条显示。 - **Form 实现唯一性检查**:...

Global site tag (gtag.js) - Google Analytics