`

oracle sql 带order by ss desc 进行的分页注意事项

 
阅读更多

select * from (
       select * from(
           select   ROWNUM ROWNUM_,curtab.* from (
           
                  select  * from service
                  order by asid desc /* order by 一定要放到内层*/
            ) curtab
      )cub  where ROWNUM_ <= 10
) currtable where ROWNUM_ >= 6

 

 

如果这里的sql是不带order by的sql,则查询结果没有任何问题。 

 

但是,如果sql中带有order by,则会引起混乱,即相同记录会出现在不同页中。但是,这种混乱的出现通常是在下面的情况下: 

 

1、纪录数足够多(如果表中有lob字段更好:P) 

 

2、插入记录数大于3页,每页最好10+条记录 

 

3、order by字段至少需要有2个值 

 

4、具备相同order by字段的记录数大于3页 

 

5、插入记录后,最好做删除、修改操作,然后再插入记录。保证记录在磁盘环境中的顺序是无序的。 

 

6、如果满足上述条件,但还没有出现混乱现象,则适当的加大纪录数。 

分享到:
评论
3 楼 sblig 2012-08-15  
chensong215 写道
chensong215 写道
http://hi.baidu.com/chensong_blog/item/76e546a849cc3c15a9cfb774



不只是oracle,其它数据库也有


恩 吃了一次亏 ,就记住了,值了  呵呵 

ROWNUM  这个东西我记住你了。。。
2 楼 chensong215 2012-08-15  
chensong215 写道
http://hi.baidu.com/chensong_blog/item/76e546a849cc3c15a9cfb774



不只是oracle,其它数据库也有
1 楼 chensong215 2012-08-15  
http://hi.baidu.com/chensong_blog/item/76e546a849cc3c15a9cfb774

相关推荐

    Oracle的SQL分页实践

    在Oracle数据库中,SQL分页是一种非常常见的查询技术,它允许我们从大量数据中按需获取一部分结果,而不是一次性加载所有记录。这对于提高用户体验和优化系统性能至关重要,尤其是在处理大数据量的Web应用中。本实践...

    oracle sql分页语句

    Oracle SQL分页语句是数据库查询中的一个重要概念,它允许我们从海量数据中按需获取特定范围的结果,比如第一页、第二页等。在Oracle数据库系统中,实现分页查询通常使用ROWNUM伪列或者结合RANK()、DENSE_RANK()、...

    Oracle 3种分页SQL方法比较

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

    Oracle Sql语句转换成Mysql Sql语句

    2. **分页查询**:Oracle使用ROWNUM进行分页,而MySQL通常使用LIMIT和OFFSET。在转换过程中,需要将Oracle的ROWNUM替换为MySQL的LIMIT子句。 3. **连接查询**:Oracle的JOIN语法允许在ON条件中使用子查询,而在...

    Oracle SQL语句分页问题

    本文将针对Oracle数据库中的SQL分页问题进行深入探讨,并提供具体的实现方法。 #### 二、Oracle SQL分页原理及方法 ##### 2.1 基本概念 分页查询是指将查询结果按照一定的数量分割成多个“页面”,用户可以通过...

    Oracle Sql基础(beginning oracle sql中文版)

    你可以使用WHERE子句来过滤结果,GROUP BY和HAVING子句进行分组和条件过滤,以及ORDER BY子句来排序结果。 五、DML操作 INSERT语句用于向表中插入新记录,UPDATE语句用于修改现有记录,DELETE语句用于删除记录。...

    oracle分页查询sql

    ### Oracle分页查询详解 #### 一、分页查询的重要性 在数据库操作中,分页查询是一项非常重要的技术。尤其当处理大量数据时,一次性获取所有数据不仅会消耗大量的网络带宽,还可能导致前端页面加载缓慢,用户体验...

    SQL Server 存储过程及Oracle SQL语句分页

    存储过程是预编译的SQL语句集合,它可以封装一系列的操作,并且可以带有参数,以提高数据库操作的效率和安全性。而分页查询则是当数据量较大时,为了提高用户体验,按需加载部分数据的一种方法。 首先,我们来看看...

    Oracle数据库中ORDER BY排序和查询按IN条件的顺序输出

    首先,`ORDER BY`用于指定查询结果的排序方式,可以基于一个或多个列进行升序(ASC)或降序(DESC)排序。然而,Oracle数据库的`ORDER BY`默认并不保证排序的稳定性。这意味着在相同排序键值的情况下,多次执行相同...

    sqlserver,mysql,oracle三种数据库的分页查询

    本文将深入探讨SQL Server、MySQL和Oracle这三种主流数据库系统中的分页查询实现方式。 首先,我们来看SQL Server。SQL Server提供了一种称为"TOP"的关键字来实现分页。例如,如果我们想获取第1页(假设每页有10条...

    Oracle,SQl,MySql实现分页查询

    本文将基于提供的文件信息,深入探讨三种不同的分页查询方法及其在Oracle、SQL Server(这里用SQL代替)、MySQL中的实现方式,并对它们的性能进行对比分析。 #### 分页方案一:利用Not In和SELECT TOP分页 **基本...

    union all与order by用法

    在 Oracle PL/SQL 中, UNION ALL 和 ORDER BY 的使用需要遵循一定的规则和限制。本文将详细介绍 UNION ALL 和 ORDER BY 的用法,并通过实例解释其应用场景。 UNION ALL 的用法 UNION ALL 用于合并两个或多个 ...

    常用数据库sql分页

    常见的数据库管理系统包括MySQL、SQL Server、Oracle、DB2等,每种数据库管理系统都有其特有的分页机制和语法。 MySQL分页 MySQL的分页语句使用LIMIT关键字,语法为: ```sql SELECT * FROM table_name LIMIT ...

    OracleSQL必备参考

    5. **分组和排序(GROUP BY 和 ORDER BY)**:GROUP BY用于将数据按一个或多个列进行分组,而ORDER BY用于对结果集进行排序。 6. **视图(VIEW)**:视图是虚拟表,基于一个或多个表的SELECT查询。创建视图可以简化...

    oracle mysql SQL server分页

    ### Oracle、MySQL与SQL Server 分页查询详解 在数据库应用中,分页是常见的数据处理方式之一,尤其在展示大量数据时,通过分页技术可以有效地提高系统的响应速度和用户体验。本文将详细介绍Oracle、MySQL以及SQL ...

    oracle mysql sqlserver分页

    本文将详细介绍Oracle、MySQL以及SQL Server三种主流数据库系统中的分页技术,包括它们各自的实现方法和一些实用技巧。 ### 一、Oracle 分页 Oracle数据库提供了强大的功能来支持分页查询。在Oracle中,主要使用`...

    oracle SQL语法大全

    Oracle SQL语法大全 ...本文对Oracle SQL语法大全进行了详细的介绍,涵盖了SQL的基础知识、语法结构、数据类型、查询语句、操作符的使用等方面的内容,为读者提供了一个系统的了解Oracle SQL语法大全的机会。

    OracleSQLDeveloper

    Oracle SQL Developer 是一款由Oracle公司推出的免费数据库管理工具,它为数据库管理员(DBA)和开发人员提供了一个全面的集成环境,以便于管理和操作Oracle数据库。这个工具的强大之处在于其直观的用户界面和广泛的...

    ORACLE_SQLDeveloper使用教程

    需要注意的是,停止数据库服务前应确保没有用户正在进行操作。 **如何使用 Oracle Database Home Page(二)** 1. **管理数据库监听器:** - 数据库监听器负责处理来自远程客户端的连接请求。 - 可以通过 Oracle...

    Oracle SQL:经典练习题(附答案)

    6. **排序与分组**:ORDER BY子句用于对结果集进行排序,GROUP BY则用于按一个或多个列进行分组,常与聚合函数一起使用。例如,`SELECT DEPTNO, AVG(SAL) FROM emp GROUP BY DEPTNO`将返回每个部门的平均薪资。 7. ...

Global site tag (gtag.js) - Google Analytics