`
bruce198
  • 浏览: 236299 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

ORACLE分页方法

阅读更多

1、rownum是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数。
2、rownum不能以任何基表的名称作为前缀。


--自定义表phone
Name  Type         Nullable
----- ------------ --------
ID    NUMBER              
NAME  VARCHAR2(20) Y      
PHONE VARCHAR2(20) Y      
ZIP   NUMBER       Y      

--插入数据
        ID NAME                 PHONE                       ZIP
---------- -------------------- -------------------- ----------
         1 e                                        
         2 c                                                101
         3 a                                                102
         4 o                                                103
         5 f                                                103
         6 z                                                103
         7 p                                                103
         8 m                                                104
         9 g                                                102

--显示所有记录,按zip和name排序
select rownum, p.zip, p.name from phone p order by zip, name;

    ROWNUM        ZIP NAME                 ROWID
---------- ---------- -------------------- ------------------
         2        101 c                    AAAH3vAABAAAPD6AAB
         3        102 a                    AAAH3vAABAAAPD6AAC
         9        102 g                    AAAH3vAABAAAPD6AAI
         5        103 f                    AAAH3vAABAAAPD6AAE
         4        103 o                    AAAH3vAABAAAPD6AAD
         7        103 p                    AAAH3vAABAAAPD6AAG
         6        103 z                    AAAH3vAABAAAPD6AAF
         8        104 m                    AAAH3vAABAAAPD6AAH
         1            e                    AAAH3vAABAAAPD6AAA
可见,rownum由系统按照记录入库时的顺序排的号,不可以改变,rowid也是的,如果要重排rownum,需要这样...

--按zip和name排序后,显示前5条记录(对照上面的结果),外层的rownum重排了,是我们需要的顺序
select rownum, p.*
  from (select zip, name from phone group by zip, name) p
 where rownum <= 5;

或者...
select rownum, p.*
  from (select t.zip, t.name from phone t order by t.zip, t.name) p
 where rownum <= 5;

    ROWNUM        ZIP NAME
---------- ---------- --------------------
         1        101 c
         2        102 a
         3        102 g
         4        103 f
         5        103 o


--按zip和name排序后,显示第5-第9条记录(对照上上面的结果)
select *
  from (select rownum row_id, p.*
          from (select zip, name from phone group by zip, name) p)
 where row_id between 5 and 9;
 
    ROW_ID        ZIP NAME
---------- ---------- --------------------
         5        103 o
         6        103 p
         7        103 z
         8        104 m
         9            e


分享到:
评论

相关推荐

    Oracle分页

    然后,根据这些参数构建SQL查询语句,结合上面提到的Oracle分页方法,获取对应的数据。同时,Servlet可以处理请求和响应,将分页数据以特定格式(如JSON)返回给前端。 三、AJAX异步请求 AJAX(Asynchronous ...

    Oracle分页(limit方式的运用)

    ### Oracle分页(LIMIT方式的运用) 在数据库查询操作中,分页是非常常见的需求之一,尤其是在数据量较大的情况下,为了提高用户体验以及减轻服务器压力,我们需要将数据分成若干个页面进行展示。Oracle数据库作为...

    oracle分页存储过程

    oracle分页存储过程,oracle分页存储过程

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

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

    oracle分页查询sql

    基于`ROWNUM`的分页查询是Oracle中最常见的分页方法之一。它通过两层嵌套查询实现,具体格式如下: ```sql SELECT * FROM ( SELECT A.*, ROWNUM RN FROM ( SELECT * FROM TABLE_NAME ) A WHERE ROWNUM ) ...

    Oracle 分页实例 带分页控件用法

    在这个Oracle分页实例中,我们将探讨如何结合分页控件实现数据的分页显示。 首先,我们看到一个名为`webdiyer:AspNetPager`的控件,这是一个ASP.NET的Web分页控件。这个控件包含了几个关键属性: 1. `PageSize`:...

    ORACLE分页查询效率

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

    oracle分页查询

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

    oracle 分页类文件

    `ShowSQL.java`可能会包含生成这类复杂SQL的静态方法,接收页码和每页记录数作为输入,返回符合Oracle语法的分页SQL。同时,为了提高性能,可能还会涉及优化SQL,比如使用索引来加速查询。 在实际使用中,开发者...

    Oracle 3种分页SQL方法比较

    本文将详细探讨三种常用的Oracle分页SQL方法:ROWNUM、ROWNUM结合子查询以及新引入的Oracle 12c的FETCH NEXT WITH OFFSET语法。这三种方法各有优缺点,适用于不同的场景。 1. ROWNUM方法: ROWNUM是Oracle中最基础...

    oracle 分页完整代码

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

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

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

    Oracle&JSP分页和Oracle分页

    另一种更高效的方法是使用Oracle的`ROW_NUMBER()`函数,配合`OVER()`子句,这样可以实现更复杂的分页逻辑。比如,如果我们要查询第5页的数据,每页20条,可以这样写: ```sql SELECT * FROM ( SELECT ROW_NUMBER()...

    Oracle,mysql,sqlserver等各种数据库的分页方法

    ### Oracle分页方法 Oracle数据库提供了`ROWNUM`伪列来进行分页查询,但在使用时需要注意一些细节。 #### 3. 使用`ROWNUM`伪列 - **获取指定范围的数据**(例如第2至第3条记录): ```sql SELECT ID FROM ( ...

    ssh+oracle分页

    在“ssh+oracle分页”这个主题中,我们将深入探讨如何利用这三个框架与Oracle数据库进行集成,并实现数据的分页显示。 1. **Struts框架**:Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架。...

    oracle分页,比较简单很好懂

    本篇文章将深入探讨Oracle分页的机制,并提供易于理解的示例。 首先,我们来看SQL标准的`OFFSET-FETCH`和`LIMIT`子句。虽然`LIMIT`不是Oracle的原生语法,但Oracle 12c引入了`FETCH FIRST n ROWS ONLY`和`OFFSET m ...

    Oracle的SQL分页实践

    本实践将深入探讨Oracle SQL分页的实现方法。 首先,我们要了解Oracle中的基本分页查询方式。在Oracle 9i及更高版本中,可以使用ROWNUM伪列进行分页。ROWNUM是在查询结果集生成时被赋予的数值,表示行的顺序。例如...

    Oracle分页存储过程

    ### Oracle分页存储过程解析与应用 在数据库管理和应用程序开发中,处理大量数据时,分页查询是一项常用且重要的技术。Oracle数据库提供了多种方法来实现数据分页,其中使用存储过程进行分页是一种高效且灵活的方式...

    Oracle 分页的存储过程

    总结来说,Oracle分页存储过程是通过动态构造SQL语句,结合输入的分页参数,计算出总页数,并返回指定页的数据。这种方式在处理大量数据时提高了效率,同时也提供了灵活的查询控制。通过包装这些逻辑在存储过程中,...

    oracle分页程序的实现

    以下将详细介绍Oracle数据库中实现分页查询的方法以及相关知识点。 在Oracle数据库中,常见的分页查询方法有ROWNUM和ROW_NUMBER()函数,以及使用子查询和连接操作来实现分页。 1. ROWNUM方法: ROWNUM是Oracle中的...

Global site tag (gtag.js) - Google Analytics