1.根据ROWID来分<!--more-->
select * from t_xiaoxi where rowid in(select rid from (select rownum rn,rid from(select rowid rid,cid from
t_xiaoxi order by cid desc) where rownum<10000) where rn>9980) order by cid desc;
执行时间0.03秒
2.按分析函数来分(over)
select * from (select t.*,row_number() over(order by cid desc) rk from t_xiaoxi t) where rk<10000 and rk>9980;
执行时间1.01秒
3.按ROWNUM来分
select * from(select t.*,rownum rn from(select * from t_xiaoxi order by cid desc) t where rownum<10000) where
rn>9980;
执行时间0.1秒
其中t_xiaoxi为表名称,cid为表的关键字段,取按CID降序排序后的第9981-9999条记录,t_xiaoxi表有70000多条记录
个人感觉1的效率最好,3次之,2最差
分享到:
相关推荐
为了解决这个问题,Oracle 10g引入了新的功能:ROW_NUMBER()函数,配合子查询和WITH子句(即CTE,公共表表达式)可以实现更高效的分页: ```sql WITH ordered_data AS ( SELECT t.*, ROW_NUMBER() OVER (ORDER BY ...
首先,理解Oracle分页查询的基本结构。通常,Oracle的分页查询采用嵌套查询的方式实现。以下是一个典型的分页查询模板: ```sql SELECT * FROM ( SELECT A.*, ROWNUM RN FROM ( SELECT * FROM TABLE_NAME ) A ...
总结来说,Oracle数据库中的分页代码实现主要涉及到SQL查询的编写,以及在Java后端如何处理这些查询。理解分页的基本原理和Oracle提供的函数,结合实际编程环境,可以有效地实现高效、灵活的分页功能。对于初学者而...
如果需要分页并按特定顺序返回结果,应该结合`ROW_NUMBER()`函数和`OVER()`子句来实现,但这超出了当前讨论的范围。 总的来说,Oracle的分页查询是一个涉及查询优化、连接策略和伪列运用的复杂话题。正确使用分页...
### Oracle分页查询详解 #### 一、Oracle分页查询基础 在Oracle数据库中,实现分页查询是一项常见的需求,特别是在处理大量数据时。本文将详细介绍Oracle中的分页查询技术,帮助初学者快速掌握这一技能。 #### 二...
3. **分页查询的另一种写法**: ```sql SELECT USRID, GRPID, UNAME, SAL, BRITH FROM ( SELECT A.*, ROWNUM AS RN FROM (SELECT * FROM T_USER ORDER BY USRID) A WHERE ROWNUM ) WHERE RN ; ``` 上述...
以下是对Oracle分页查询的实例详解: 1. **Oracle分页查询基础** Oracle分页查询通常通过ROWNUM伪列来实现。ROWNUM在查询时为每行分配一个唯一的数字,从1开始递增。在分页查询中,我们可以利用ROWNUM限制返回的...
在上述问题中,开发者遇到了一个典型的Oracle分页查询问题,即在查询第4页及以后的数据时,结果重复。以下是这个问题的详细分析和解决方案。 首先,原始的分页查询SQL使用了嵌套子查询,并在外部查询中应用了`...
DB2、ORACLE SQL写法的主要区别 1、数据类型转换函数 2、Where条件弱类型判断 3、replace关键字 4、子查询别名 5、DATE数据类型的区别 6、分页的处理 7、decode函数 8、NVL函数 9、substr的不同 10、获取操作系统...
9. 函数和内置操作:例如,SQL Server的 `CONVERT()` 函数在Oracle中可能是 `TO_CHAR()` 或 `TO_DATE()`。 10. 日期格式:SQL Server和Oracle默认的日期格式不同,转换时需要考虑日期字符串的格式化问题。 在...
- Oracle的窗口函数`ROW_NUMBER() OVER(PARTITION BY ... ORDER BY ...)`, MySQL无直接对应,可使用用户变量模拟实现。 - Oracle的`ROWNUM`行号在MySQL中需要通过用户变量或自连接实现分页效果。 转换时,需要...
- Oracle的`NEXTVAL`函数在MySQL中可通过自定义函数或`LAST_INSERT_ID()`实现类似功能。 4. **翻页查询**: - MySQL使用`LIMIT`关键字进行分页,如`LIMIT m, n`,从第m+1条开始取n条数据。 5. **函数转换**: -...
在将Oracle数据库转换为MySQL的过程中,开发者可能会遇到一系列与数据类型、SQL语法和函数差异相关的问题。以下是对这些差异的详细说明: 1. **数据类型转换**: - `NUMBER(p,s)`在Oracle中用于存储浮点数,而...
这样的写法在MySQL中是有效的,但在Oracle中则可能会导致错误。因此,在Oracle中使用别名时需要特别注意这一点。 #### 四、分页查询的实现方式 在实际应用中,分页查询是非常常见的需求。MySQL和Oracle在这方面的...
除了以上提到的区别,还有其他一些因素需要考虑,比如Oracle支持更多的索引类型(如函数索引、位图索引等),而MySQL更适合轻量级应用和快速开发。在实际应用中,选择哪种数据库系统取决于具体的需求、性能要求以及...
翻页查询时,使用`ROWNUM`或`OFFSET`/`FETCH`等方法来实现分页,以减少不必要的数据检索。 **3-11、MERGE的使用** `MERGE`语句可以高效地更新或插入数据,特别适用于需要根据条件更新或插入的场景。 **3-12、多表...
- Oracle的DECODE函数在DB2中不支持,可以使用CASE WHEN语句替代,如`SELECT CASE WHEN f_areaid IS NULL THEN '空' ELSE f_areaid END FROM masa_user`。 7. **NVL函数**: - Oracle的NVL在DB2中需要使用...