`
chensunhao
  • 浏览: 11600 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Oracle中的基本分页查询

阅读更多

在Oracle中,分页有两种方式:rownum和row_number。

现有以下两张表:

DEPT: DEPTNO,DNAME,LOC

EMP: EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO

 

rownum必须从1开始,记录查询出来之后又会从1开始,如:

--这样做能成功获得结果
select rownum,e.* from emp e where rownum<=3;
--这样做时没办法获得结果的
select rownum,e.* from emp e where rownum>=2 and rownum<=5;
--解决办法是在子查询中先生成行号,如:
SELECT * FROM (SELECT ROWNUM r,e.* FROM emp e) a
WHERE r>=4 AND r<=6

使用rownum不能直接排序的原因是rownum在order by 之前生成,所以必须先排序,如:

 

现需要查询出第二页记录(按hiredate倒序,每页显示10条记录)

1.使用rownum分页:

SELECT b.* FROM (
SELECT ROWNUM r,a.* FROM (
SELECT * FROM emp ORDER BY hiredate DESC) a ) b
WHERE b.r>=11 AND b.r<=20

2.使用row_number解析函数分页:

SELECT b.* FROM (
SELECT row_number() over (ORDER BY hiredate DESC) r,x.* FROM emp x ) b
WHERE b.r>=11 AND b.r<=20

在这里注意的是使用解析函数row_number的效率比使用rownum的效率高。

 

1
0
分享到:
评论

相关推荐

    ORACLE分页查询效率

    综上所述,通过以上知识点的学习,我们不仅可以了解Oracle中分页查询的基本实现方法及其优化策略,还可以深入理解Oracle 9i新增的操作系统统计信息功能及其应用价值。这对于提升Oracle数据库的应用性能具有重要的...

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

    ### 解决Oracle分页查询中排序与效率问题 在Oracle数据库中进行分页查询时,经常会出现性能瓶颈,尤其是在处理大数据量的情况下。本篇文章将详细探讨如何优化Oracle分页查询中的排序与效率问题。 #### 一、理解...

    oracle分页查询sql

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

    韩顺平Oracle版的分页查询

    首先,我们需要理解Oracle中实现分页查询的基本概念。在SQL语句中,通常使用`ROWNUM`伪列来实现分页。`ROWNUM`表示每条记录的顺序号,从1开始递增。例如,如果我们想要获取前10条记录,可以这样写: ```sql SELECT ...

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

    知识点 1: Oracle 分页查询的基本概念 Oracle 分页查询是指在查询结果中,通过限制行数来实现分页的功能。常用的分页查询方法有两种:ROWNUM 和 OFFSET Fetch。ROWNUM 是 Oracle 专门用于分页查询的伪列,OFFSET ...

    Oracle分页查询(很不错的介绍)

    首先,理解Oracle分页查询的基本结构。通常,Oracle的分页查询采用嵌套查询的方式实现。以下是一个典型的分页查询模板: ```sql SELECT * FROM ( SELECT A.*, ROWNUM RN FROM ( SELECT * FROM TABLE_NAME ) A ...

    java web与Oracle数据的分页功能

    在Java Web开发中,与Oracle数据库进行交互时,分页功能是常见的需求,尤其是在处理大量数据时,为了提高用户体验和加载速度,分批次地显示数据是必不可少的。本项目提供的源代码正是针对这一需求,提供了在Java Web...

    Oracle的SQL分页实践

    首先,我们要了解Oracle中的基本分页查询方式。在Oracle 9i及更高版本中,可以使用ROWNUM伪列进行分页。ROWNUM是在查询结果集生成时被赋予的数值,表示行的顺序。例如,如果我们想要获取前10条记录,可以使用以下...

    oracle分页查询

    Oracle 分页查询是指从大型数据表中提取指定范围的记录,以便提高查询效率和减少数据传输量。常用的 Oracle 分页查询方法有三种:使用 ROWNUM、使用 ROW_NUMBER() 和使用子查询。 第一种方法:使用 ROWNUM Oracle...

    Oracle分页(limit方式的运用)

    假设我们需要从一个名为`EMPLOYEE`的表中查询数据,并实现每页显示10条记录。下面是使用`OFFSET`与`FETCH FIRST`进行分页查询的基本语法示例: ```sql SELECT * FROM ( SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME...

    JAVA_JDBC面向对象分页(初步设计二之oracle)

    接下来,我们探讨Oracle数据库中的分页查询。Oracle提供了ROWNUM伪列,可以用来限制返回的结果集。在编写SQL语句时,我们可以结合ROWNUM和子查询来实现分页: ```sql SELECT * FROM ( SELECT ROWNUM AS row_num, t...

    Oracle-C#分页控件

    Oracle-C#分页控件是将Oracle数据库与C#编程语言结合,实现数据查询和展示时的分页功能。在Windows应用程序(Winform)开发中,分页是必不可少的一个特性,尤其是在处理大量数据时,它能提高应用性能,提供更好的...

    使用jdbc_oracle实现的分页功能

    本示例着重讲解如何利用JDBC和Oracle数据库实现分页功能,同时涵盖一个表的基本操作:增加、删除和修改。 首先,我们需要了解JDBC。JDBC是Java API,它提供了一套标准接口,使得Java程序可以与各种类型的数据库进行...

    通用ORACLE存储过程实现分页和查询

    分页通常通过LIMIT和OFFSET关键字在SQL查询中实现,但在Oracle中,我们使用ROWNUM伪列和子查询来达到相同的效果。ROWNUM是在查询结果集返回之前分配的一个整数值,表示每行的顺序。 创建一个通用的分页存储过程,...

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

    通过对Oracle中分页查询语句的详细分析,我们可以看出合理选择分页查询的方法对于提高查询效率至关重要。在实际应用中,应根据具体需求和Oracle版本选择最合适的分页策略。同时,理解Oracle的查询优化器如何工作,...

    oracle分页

    在Oracle数据库中,分页是一种常见的查询技巧,用于在大量数据中检索特定部分,以便用户可以逐步浏览结果,而不会一次性加载所有数据导致性能下降。本文将深入探讨Oracle中的分页实现、存储过程、循环与游标的应用...

    java Oracle存储过程分页整理

    本教程将深入探讨如何在Java中调用Oracle存储过程来执行分页查询。 首先,我们需要理解分页的基本概念。分页是将大结果集分割成多个小部分,每次只加载一部分数据到内存中,这样可以减少内存消耗,提高响应速度。在...

    Oracle的分页查询详解及效率.doc

    Oracle数据库的分页查询是数据库管理系统中用于处理大量数据并按特定顺序显示部分结果的关键技术。在Oracle中,实现分页查询通常涉及到ROWNUM伪列的使用,它可以帮助我们限制返回的结果数量。本文将深入探讨Oracle...

Global site tag (gtag.js) - Google Analytics