`
yuelangyc
  • 浏览: 456262 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle分页rownum/rounum使用(转)

阅读更多
1、如何使用Oracle的Rownum来进行SQL语句按列排序的分页数据提取;

2、实现有排序条件的单一SQL语句中Rownum的正序(是指rownum按1、2、3依次递增),而不是让人抓狂的乱序;

3、 多个同向排序列的单一SQL也能实现它的Rownum输出的正序。


利用Oracle的虚列Rownum,就可以通过SQL语句来完成数据提取的分页处理。

这两个数据列,我们先来看看,如果一个列没有索引时,所输出的ID列的值,看起来可能是乱七八糟的。因此,为了在排序条件下的分页输出,就需要:

语句1:select * from (

select rownum id, a.* from

(select * from sm_shoushumc order by shoushumc) a

where rownum <= 2000 )

where id>1990;

此语句完成按shoushumc排序的10行一页,取得第200页的功能。但是我们还是希望这样的SQL语句可以简单一些,比如:

语句2:

select a.* from
(select ROWNUM id, t.* from sm_shoushumc t where rownum<=2000 order by t.shoushumc ) a Where id>1990;

如果能够直接达到我们的目标就是帅多了,但是这两个语句在通常情况下可能是不等效的,这也是由Rownum的特性所决定的。


主键的通常有3个特性(此处仅指单列的主键):

1.它必定是一个索引项;

2.它是一个NOT NULL的列;

3.唯一性。


你要想让有排序条件的单一的SELECT语句的结果中rownum顺序就是1、2、3、4……的正序(即自然顺序),那就是该列必须是索引项与NOT NULL的属性。这样的列能被有效索引检索,分页时的性能也很不错。

要注意用于Order by中的项目它必须由合理的索引所包含,要想看看一个列是否在有效索引中,只要在相应的SQL语句中使用执行计划查看一下就可以了。因此了解了Rownum与Order By中列的关系,大数据量的分页提取,不仅性能更好,而且SQL语句的简单,就不容易那么让人抓狂了。


分享到:
评论

相关推荐

    ROWNUM的使用技巧

    使用 ROWNUM 对结果进行分页,例如返回结果中的第 6 到第 10 条记录: ```sql select * from ( select a.*, rownum as rn from css_bl_view a where capture_phone_num = '(1) 925-4604800' ) b where b....

    对于 Oracle 的 rownum 问题

    对于 Oracle 的 rownum 问题,很多资料都说不支持&gt;,&gt;=,=,between...and,只能用以上符号(&lt;、、!=),并非说用&gt;,&gt;=,=,between..and 时会提示SQL语法错误,而是经常是查不出一条记录来,还会出现似乎是莫名其妙的结果来...

    Oracle分页(limit方式的运用)

    通过以上介绍,我们可以看到在Oracle中使用`OFFSET`与`FETCH FIRST`结合`ROWNUM`可以有效地实现分页查询。这种方法不仅简单易用,而且能够满足大多数场景下的需求。当然,在实际应用中还需要根据具体情况进行调整和...

    Oracle中rownum的使用

    Oracle中rownum的使用

    如何解决Oracle分页查询中排序与效率问题

    ROWNUM 是 Oracle 专门用于分页查询的伪列,OFFSET Fetch 是 Oracle 12c 及更高版本中引入的分页查询方法。 知识点 2: 分页查询中的排序问题 在分页查询中,如果在 ORDER BY 子句中指定了排序列,会出现排序列不是...

    ORACLE 中ROWNUM用法总结

    在Oracle数据库中,`ROWNUM`是一个非常有用的伪列,用于限制查询结果的行数,尤其是在处理大数据量或进行分页查询时。然而,`ROWNUM`的使用并不直观,尤其是当涉及到比较运算符(如`&gt;`, `&gt;=`, `=`等)时,容易引发...

    oracle分页查询

    常用的 Oracle 分页查询方法有三种:使用 ROWNUM、使用 ROW_NUMBER() 和使用子查询。 第一种方法:使用 ROWNUM Oracle 的 ROWNUM 函数可以用来实现分页查询。基本格式如下: ```sql SELECT * FROM (SELECT A.*,...

    oracle分页查询sql

    在早期版本的Oracle中,通常使用`ROWNUM`来实现分页功能。 #### 三、基于ROWNUM的分页查询 基于`ROWNUM`的分页查询是Oracle中最常见的分页方法之一。它通过两层嵌套查询实现,具体格式如下: ```sql SELECT * ...

    15oracle的PL/SQL编程-分页 PPT

    总结,Oracle的PL/SQL编程中的分页技术是数据库管理的重要组成部分,通过合理使用`ROWNUM`、窗口函数以及`OFFSET/FETCH`等方法,可以有效地实现高效且灵活的分页查询,同时优化系统性能,提升用户体验。

    oracle rownum 的使用 和sqlserver有区别的!

    ### Oracle ROWNUM 使用详解与 SQL Server 区别 在数据库操作中,ROWNUM 是一个非常重要的伪列,主要用于返回查询结果的行序号。它在 Oracle 数据库中有着广泛的应用场景,尤其是在需要对查询结果进行分页显示、...

    oracle 分页完整代码

    同时,对于大数据量的场景,还可以考虑使用Oracle的分页功能,如RANGE BETWEEN或者Oracle 12c引入的FETCH FIRST子句,这些方法可以更高效地处理分页。 此外,对于Java应用,可以使用ORM框架如Hibernate或MyBatis来...

    oracle分页查询并返回总记录数据存储过程

    Oracle 数据库提供了多种方法来实现分页查询,其中使用存储过程是一种高效且灵活的方式。本文将详细介绍如何在 Oracle 中创建一个用于分页查询并返回总记录数的存储过程。 #### 核心概念 1. **存储过程**:存储在...

    ORACLE分页查询效率

    根据所提供的信息,我们可以提炼出以下关于“ORACLE分页查询效率”的相关知识点: ### 一、Oracle中的分页查询 #### 1.1 分页查询的重要性 - **背景介绍**:在实际应用中,数据库查询结果往往非常庞大,一次性加载...

    oracle 分页语句

    - 除了使用`ROWNUM`之外,还可以采用其他技术来实现分页查询,例如使用`OFFSET/FETCH`关键字(在Oracle 12c及以上版本支持),这样可以直接指定跳过的行数和需要返回的行数。 #### 总结 通过以上分析,我们可以...

    Oracle&JSP分页和Oracle分页

    不过,ROWNUM有个限制,它不能与WHERE子句一起使用来实现分页,因为Oracle在执行WHERE之前就已经计算了ROWNUM。为了解决这个问题,可以使用子查询或临时表。 另一种更高效的方法是使用Oracle的`ROW_NUMBER()`函数,...

    java web与Oracle数据的分页功能

    2. **构造SQL查询语句**:Oracle数据库支持使用`ROWNUM`进行分页查询。基本的SQL模板为: ```sql SELECT * FROM (SELECT t.*, ROWNUM rnum FROM (YOUR_SELECT_QUERY) t WHERE ROWNUM ) WHERE rnum &gt;= :startRow `...

    java连接Oracle分页显示

    Oracle数据库支持多种方式进行分页,包括使用ROWNUM、ROWNUM BETWEEN、游标以及通过视图和存储过程。下面我们将详细探讨这些方法,并结合Java如何进行操作。 1. **ROWNUM分页**:Oracle中的ROWNUM伪列可以用来实现...

    oracle rownum 学习

    Oracle ROWNUM学习 Oracle ROWNUM是Oracle系统顺序分配的行号,用于限制查询返回的总行数。ROWNUM是一个伪字段,不能以任何表的名称作为前缀。下面是对ROWNUM的详细讲解: 一、ROWNUM的基本用法 ROWNUM是一个伪...

    Oracle的SQL分页实践

    使用JDBC时,可以结合LIMIT和OFFSET子句(Oracle不支持LIMIT,但可以通过ROWNUM模拟)来实现分页,而在Hibernate中,可以使用Criteria API或HQL的`setFirstResult`和`setMaxResults`方法来实现相同的功能。...

    Oracle的分页查询语句 Oracle分页的存储过程

    Oracle数据库在处理大数据量查询时,分页查询是一种常见的优化策略,目的是限制返回结果集的大小,加快查询速度,提供更好的用户体验。本文将详细探讨Oracle的分页查询语句及其存储过程。 首先,Oracle的分页查询...

Global site tag (gtag.js) - Google Analytics