`

Oracle 中使用带有 Order By 的分页处理办法

阅读更多
1. Oracle 分页中对于分页的处理,以下是没有 Order by 的正确分页Sql语句。
select * from
(
  SELECT rownum rownumber,a.id,a.userid,a.country,a.realname,a.firstname,a.lastname,a.educationbgcode,
  a.updatetime,round((sysdate-a.experienceyear)/360) as textint1,a.gender,a.birthday,a.educationbg,
  a.province,a.other,positiontype,positionsubtype
  FROM resume a
  where lang = '1'  AND a.isdeleted = '0'  AND a.educationbgcode>=4
  rownumber<=20
)
where  and rownum>10


2. Oracle 中分页语句中,有 order by 并且错误的查询将语句。
select * from
(
  SELECT rownum rownumber,a.id,a.userid,a.country,a.realname,a.firstname,a.lastname,a.educationbgcode,
  a.updatetime,round((sysdate-a.experienceyear)/360) as textint1,a.gender,a.birthday,a.educationbg,
  a.province,a.other,positiontype,positionsubtype
  FROM resume a
  where lang = '1'  AND a.isdeleted = '0'  AND a.educationbgcode>=4
  order by updatetime desc
  rownumber<=20
)
where  and rownum>10


3. 解决办法,将采用3次子查询来解决带有 Order by 的分页查询。SELECT x.* from
(  
  SELECT rownum numbers,z.* from
  (    
    SELECT rownum rownumber,a.id,a.userid,a.country,a.realname,a.firstname,a.lastname,a.educationbgcode,
    a.updatetime,round((sysdate-a.experienceyear)/360) as textint1,a.gender,a.birthday,a.educationbg,
    a.province,a.other,positiontype,positionsubtype
    FROM resume a
    where lang = '1'  AND a.isdeleted = '0'  AND a.educationbgcode>=4
    order by updatetime
  ) z
  where rownum<=10
) x   
where x.numbers>5
分享到:
评论

相关推荐

    Oracle&JSP分页和Oracle分页

    接下来,我们将讨论如何在JSP中使用这些分页查询。JSP可以通过Servlet或者JDBC来连接Oracle数据库,执行上述的SQL语句。首先,你需要在JSP页面中创建一个表单,用户可以通过这个表单选择页码。然后,表单提交到...

    oracle数据库级分页(java)

    Oracle数据库级分页是数据库管理中的一个重要概念,特别是在处理大量数据时,为了提高查询效率和用户体验,分页技术显得尤为关键。在Java开发中,我们通常利用JDBC(Java Database Connectivity)来实现这一功能。本...

    Oracle 分页的存储过程

    在分页查询中,需要构建一个带有 `OFFSET` 和 `FETCH` 关键字的SQL语句。在Oracle 12c及更高版本中,可以使用 `OFFSET ... ROWS FETCH NEXT ... ROWS ONLY` 来实现分页。在示例中,这个过程可能使用类似以下的SQL...

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

    1. 避免在`ORDER BY`子句中使用复杂表达式或不带索引的列,因为这会导致全表扫描。 2. 使用索引可以显著提高排序速度,尤其是对于大表,应为用于分页的关键列建立索引。 3. 如果数据量非常大,考虑使用物化视图或...

    结合oracle数据库的分页排序jqgrid表格.doc

    2. **构建SQL查询**:基于`sidx` 和 `sord` 创建带有ORDER BY子句的SQL查询。例如,如果`sidx`是"column1",`sord`是"desc",那么查询应包含`ORDER BY column1 DESC`。 3. **处理分页**:使用`LIMIT`或`OFFSET`子句...

    oracle分页查询

    在这个例子中,我们首先定义了一个带有ROW_NUMBER()的公共表表达式(CTE),然后根据rownum进行筛选。 3. DBMS_QUERYRESULT_SCAN包 Oracle 11g引入了一个名为DBMS_QUERYRESULT_SCAN的包,用于对已执行的查询结果...

    关于SQL Server SQL语句查询分页数据的解决方案

    另一种常见的分页查询方法是使用`TOP`和`ORDER BY`组合。这种方式适用于那些需要按特定顺序排列记录的情况。例如,从表`Sys_option`(主键为`sys_id`)中从第10条记录开始检索20条记录,可以使用以下SQL语句: ```...

    delphi ADO分页查询ADOPage

    添加一个TADOCommand组件,设置其CommandText属性为带有分页逻辑的SQL语句。分页查询通常使用`SELECT ... FROM ... LIMIT offset, limit`或`SELECT ... WHERE ROWNUM BETWEEN start AND end`的形式。在SQL Server中...

    使用原生ADO对数据进行分页显示.rar

    在分页显示中,我们需要用到带有OFFSET和FETCH NEXT的SQL语句,以获取特定范围的数据。 3. **TADODataset组件**:作为数据集对象,它存储从数据库检索到的数据,并与数据绑定控件(如DBGrid)进行交互。TADODataset...

    分页功能 asp.net

    2. **计算总记录数**:在分页中,需要知道总共有多少条数据,这通常通过执行一个不带分页的SQL查询来实现。例如,`SELECT COUNT(*) FROM TableName`。 3. **设置每页显示的记录数**:根据需求确定每页显示的记录数...

    java分页(三种数据库)

    3. 性能优化:避免在`ORDER BY`子句中使用不带索引的字段,这可能导致全表扫描,影响性能。 4. 分页效率:对于大数据量,`OFFSET`在某些数据库(如Oracle)中可能效率较低,可以考虑使用其他策略,如游标或者范围...

    分页技术及其实现

    这里先通过内层查询筛选出前10条记录,并给每条记录赋予一个行号,然后外层查询进一步筛选出这些带有行号的记录。 #### 五、不同数据库间的分页技术统合 为了提高代码的可移植性,可以将针对不同数据库的分页逻辑...

    12 分页 分页 打印一页数据

    在JDBC中,你需要执行带有分页参数的SQL查询,并处理结果集。这里可能涉及到PreparedStatement的使用,它可以安全地处理动态SQL语句,防止SQL注入。 ```java String sql = "SELECT * FROM table LIMIT ? OFFSET ?";...

    Oracle到mysql转换的问题总结.docx

    - Oracle中的`NUMBER(10,0)`等同于MySQL中的`INT`,而`NUMBER(10,2)`对应于MySQL的`DECIMAL(10,2)`或`NUMERIC(10,2)`,用于存储带有小数的数值。 - `VARCHAR2`在Oracle中用于存储可变长度的字符数据,而在MySQL中...

    java分页资料

    - **避免全表扫描**:避免在分页查询中使用可能导致全表扫描的操作。 6. **分页组件**: - **PagingAndSortingRepository**:Spring Data JPA提供的分页接口。 - **JPage**:MyBatis-Plus中的分页类,简化了分页...

    oracle 学习笔记

    2. Rownum在SQL中使用时有一些特殊的行为,特别是在带有子查询时。 3. Where rownum的执行过程与直接写5的执行过程不同。 4. Rownum=5的执行可能不会返回预期结果,需要特别注意。 十六、约束Constraint 1. 约束是...

    Oracle2.pdf

    无排序分页可以通过直接筛选Rownum实现,而带有排序的分页则需要先对数据进行排序,然后再用Rownum来分页。例如,如果要获取第6到第10条按工资降序排列的记录,可以写成:`SELECT * FROM (SELECT * FROM employees ...

    Oracle到mysql转换的问题总结.doc

    - `NUMBER(10,2)`在Oracle是带有两位小数的数值类型,对应MySQL的`DECIMAL(10,2)`或`NUMERIC(10,2)`。 - `VARCHAR2`在Oracle中用于存储可变长度的字符数据,MySQL中相应的是`VARCHAR`。 - `DATE`在Oracle中包含...

Global site tag (gtag.js) - Google Analytics