`
pchenhuhu
  • 浏览: 905 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Oracle的rownum原理

阅读更多
在Oracle中,要按特定条件查询前N条记录,用个rownum就搞定了。
   select * from emp where rownum <= 5
而且书上也告诫,不能对rownum用">",这也就意味着,如果你想用
   select * from emp where rownum > 5 
则是失败的。要知道为什么会失败,则需要了解rownum背后的机制:
1 Oracle executes your query.

2 Oracle fetches the first row and calls it row number 1.

3 Have we gotten past row number meets the criteria? If no, then Oracle discards the row, If yes, then Oracle  return the row.

4 Oracle fetches the next row and advances the row number (to 2, and then to 3, and then to 4, and so forth).

5 Go to step 3.

了解了原理,就知道rownum>不会成功,因为在第三步的时候查询出的行已经被丢弃,第四步查出来的rownum仍然是1,这样永远也不会成功。

同样道理,rownum如果单独用=,也只有在rownum=1时才有用。
分享到:
评论

相关推荐

    oracle rownum和distinct

    "Oracle 中的 ROWNUM 和 DISTINCT" Oracle 中的 ROWNUM 和 DISTINCT 是两个非常重要的关键词,它们在查询数据时发挥着至关重要的作用。然而,许多开发者在使用这两个关键词时,却常常会遇到一些不太理解的地方,...

    Oracle Rownum的使用与JSP分页显示的实现.pdf

    Oracle数据库中的Rownum是一个非常重要的特性,尤其在处理大量数据和实现分页显示时显得极其关键。Rownum是一个伪列,它并不是数据库表...同时,理解Rownum的工作原理,对于优化查询性能和编写高效的SQL语句至关重要。

    oracle的rownum用法

    理解`ROWNUM`的工作原理对于编写高效的Oracle查询至关重要,尤其是在处理大型数据集时,能够帮助我们避免不必要的性能问题。正确使用`ROWNUM`可以让我们更好地控制查询结果的范围,从而实现更精细化的数据处理。

    oracle中取中间记录的方法

    本文将详细介绍如何利用Oracle中的`MINUS`操作符以及`ROWNUM`伪列来实现这一功能。 #### ROWNUM伪列简介 在介绍具体方法之前,我们首先了解一下`ROWNUM`伪列的基本概念。`ROWNUM`是Oracle提供的一种特殊的伪列,它...

    ORACLE数据库中ROWNUM用法详解

    Oracle数据库中的ROWNUM是一个非常重要的概念,特别是在处理大型数据集时进行分页查询。ROWNUM是一个伪列,意味着它并...通过深入理解ROWNUM的工作原理,开发者能够更好地设计和优化数据库查询,以满足复杂的业务需求。

    Oracle中ROWNUM的使用技巧.docx

    Oracle数据库中的ROWNUM是一个非常有用的特性,...理解ROWNUM的工作原理,以及如何与其他查询结构结合,是有效利用这一特性的关键。在进行复杂查询时,应始终考虑查询性能和结果的准确性,确保ROWNUM的使用符合预期。

    Oracle利用rownum查询出部分数据[归类].pdf

    在Oracle数据库中,`ROWNUM`是一个...理解`ROWNUM`的生成原理以及其与`ORDER BY`的交互对于优化SQL查询和获取预期结果至关重要。在实际的软件开发工作中,掌握这些细节能够帮助我们写出更高效、更符合需求的查询语句。

    oracle分页查询sql

    #### 二、Oracle分页查询基本原理 在Oracle数据库中,实现分页查询主要有两种方式:基于`ROWNUM`和基于`OFFSET`和`FETCH`。在早期版本的Oracle中,通常使用`ROWNUM`来实现分页功能。 #### 三、基于ROWNUM的分页...

    解析rownum

    总之,理解`ROWNUM`的工作原理及其限制对于在Oracle中编写高效的查询至关重要。在使用时,需要注意其与查询顺序、`ORDER BY`以及各种比较操作符的相互作用。通过巧妙运用,我们可以更好地控制数据检索,实现高效的...

    oracle 分页语句

    本文将详细介绍一个特定的Oracle分页查询语句:“`select * from (select a.*,rownum rn from (select * from tablename) a where rownum) where rn&gt;2`”,并对其背后的原理进行深入探讨。 #### 分页查询语句解析 ...

    Oracle分页

    一、Oracle分页原理 Oracle提供了几种不同的分页方式,包括ROWNUM、ROWNUM BETWEEN、ROWNUMBER() OVER()等。其中,ROWNUM是最基础的分页方法,它为每一行返回的结果集分配一个唯一的整数值。但是,ROWNUM在并行查询...

    oracle教学ppt(最全面).zip

    - 数据模型:理解关系型数据模型的基本原理,包括实体、属性、键和关系的概念。 - Oracle体系结构:学习Oracle数据库的物理和逻辑结构,如表空间、数据文件、控制文件、重做日志文件等。 2. **Oracle数据库安装与...

    oracle分页查询

    在Oracle数据库中,分页查询通常涉及到`ROWNUM`伪列的使用,以限制返回的行数。下面将详细讨论Oracle分页查询的原理、方法以及性能分析。 首先,Oracle的分页查询语句通常有以下结构: ```sql SELECT * FROM ( ...

    Oracle经典教程(入门到精通很详细)

    总的来说,Oracle数据库是一个功能强大且复杂的系统,它拥有众多的特性和组件,学习和掌握Oracle需要对数据库原理有一定的了解,同时还需要通过大量的实践来熟悉和运用Oracle的各种功能和工具。随着实践经验的积累,...

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

    #### 一、理解Oracle分页查询的基本原理 在Oracle中实现分页查询通常有两种方法:基于ROWNUM的方法和子查询方法。这里主要讨论的是基于ROWNUM的分页查询方式。其基本思想是通过ROWNUM过滤出特定范围内的记录,然后...

    oracle认证详解Oracle的几种分页查询语句

    原因在于Oracle的Cost-Based Optimizer (CBO)能够将最外层的条件`WHERE ROWNUM 推送到最内层查询中,从而在数据量较大时提前终止查询,减少不必要的计算开销。而在第二种方法中,由于最内层查询无法提前终止,导致...

    如何在Oracle中实现搜索分页查询

    综上所述,实现Oracle中的搜索分页查询需要理解ROWNUM的工作原理,合理地构造子查询和绑定变量,以及考虑是否利用存储过程进行优化。通过这些技术,可以有效地在大量数据中实现分页查询,提供高效且用户友好的数据...

    Oracle 分页存储过程

    Oracle数据库提供了ROWNUM伪列,用于标记每一行的顺序号。然而,直接使用ROWNUM进行分页存在效率问题,因为Oracle会先返回所有满足条件的记录,然后再筛选出指定范围的行。为了解决这个问题,我们可以利用子查询和...

Global site tag (gtag.js) - Google Analytics