rownum 很早就会用,以前也经常用在分页查询,但今天发现了一个新问题:
1. 标准的rownum分页查询使用方法:
select *
from (select c.*, rownum rn from content c)
where rn >= 1
and rn <= 5
2. 但是如果, 加上order by addtime 排序则数据显示不正确
select *
from (select c.*, rownum rn from content c order by addtime)
where rn >= 1
and rn <= 5
解决方法,再加一层查询,则可以解决,
select *
from (select rownum rn, t.*
from (select title, addtime from content order by addtime desc) t)
where rn >= 1
and rn <= 5
如果要考虑到效率的问题,上面的还可以优化成(主要两者区别)
select *
from (select rownum rn, t.*
from (select title, addtime from content order by addtime desc) t
where rownum <= 10)
where rn >= 3
分享到:
相关推荐
oracle中rownum在结果集中排序的使用.doc
- 如果在一个查询中没有对结果集进行排序或过滤,则`ROWNUM`将按照数据在表中的物理顺序进行编号。 2. **ROWNUM的限制与条件:** - `ROWNUM`不能用于`WHERE`子句中作为筛选条件。 - 使用`ROWNUM`时,通常需要将...
ROWNUM 是 Oracle 中的一种伪列,它可以根据返回记录生成一个序列化的数字。利用 ROWNUM,我们可以生产一些原先难以实现的结果输出,但是因为它是伪列的特殊性,在使用时需要注意一些事项,以免掉入“陷阱”。 特殊...
为了避免排序对`ROWNUM`的影响,可以先执行排序操作,然后再使用`ROWNUM`。例如: ```sql SELECT ROWNUM, ID, NAME FROM (SELECT * FROM STUDENT ORDER BY NAME); ``` 这种写法首先按`NAME`排序,然后再对排序后的...
它在 Oracle 数据库中有着广泛的应用场景,尤其是在需要对查询结果进行分页显示、排序或者统计特定范围内的记录时尤为重要。本文将详细介绍 Oracle 中 ROWNUM 的使用方法,并与 SQL Server 中相应的功能进行对比分析...
"Oracle 中的 ROWNUM 和 DISTINCT" Oracle 中的 ROWNUM 和 DISTINCT 是两个非常重要的关键词,它们在查询数据时发挥着至关重要的作用。然而,许多开发者在使用这两个关键词时,却常常会遇到一些不太理解的地方,...
为了避免这个问题,可以先对查询结果进行排序,然后在外部查询中使用ROWNUM,如子查询或连接。 2. **分页查询**:ROWNUM可用于实现分页查询,展示数据的特定页码。一个常见方法是使用嵌套查询,先为所有记录分配...
在 Oracle 中,ROWNUM 是在取数据的时候产生的序号,所以想对指定排序的数据去指定的 ROWNUM 行数据就必须注意了。例如: ```sql SELECT ROWNUM, id, name FROM student ORDER BY name; ``` 可以看出,ROWNUM 并不...
本文主要解决 Oracle 分页查询中排序与效率问题,通过实践和分析,提供了两种解决方案,并对比了两种方法的优缺点。 知识点 1: Oracle 分页查询的基本概念 Oracle 分页查询是指在查询结果中,通过限制行数来实现...
Oracle中的ROWNUM是在取数据的时候产生的序号,所以想对指定排序的数据去指定的ROWNUM行数据就必须注意了。例如: ```sql SELECT ROWNUM, ID, NAME FROM STUDENT ORDER BY NAME; ``` 可以看出,ROWNUM并不是按照NAME...
Oracle的`ROWNUM`是一个伪列,它在查询结果集中自动添加,并从1开始为每一行赋予一个唯一的数字。在处理大数据集时,`ROWNUM`常用于限制返回的行数,实现分页或者筛选特定范围的记录。然而,正确理解和使用`ROWNUM`...
在描述中提到的问题中,当使用`ORDER BY`对包含非唯一值的列进行排序,并结合分页查询时,发现不同页码的数据可能会有重复。这进一步证实了`ORDER BY`在Oracle中的不稳定特性。在没有唯一索引或主键约束的情况下,...
Oracle 排序是指在 Oracle 数据库中对数据进行排序的操作。排序是数据库查询语言中最基本的操作之一,它可以根据不同的条件对数据进行排序,实现数据的有序排列。 一、按字符方式排序 在 Oracle 中,可以使用 ...
通过对Oracle分页查询中的排序与效率问题的深入探讨,我们可以得出以下结论: - 使用合适的索引可以显著提高查询速度。 - 优化查询结构,减少不必要的计算和数据访问。 - 考虑使用高级技术如分区等来进一步提高大型...
Oracle的ROWNUM是一个非常重要的概念,它在数据库查询中起到限制返回结果数量和进行特定行选择的作用。ROWNUM是一个伪列,表示从查询结果中返回的每一行的序列号,从1开始递增。 首先,当使用ROWNUM等于某个特定值...
通过这些排序方法,你可以根据实际需求对Oracle数据库中的数据进行灵活排序和分页操作。在处理中文数据时,尤其要注意使用`NLSSORT`和相应的`NLS_SORT`参数,以确保排序的正确性。同时,合理利用DECODE和NVL函数可以...
在这个嵌套查询中,首先根据`AAA`列对数据进行排序,然后生成`ROWNUM`,最后在外层查询中筛选出`ROWNUM`小于4的行,从而得到期望的结果。 总结一下,`ROWNUM`在Oracle中用于限制查询返回的行数,但它的行为并不直观...
### 在Oracle中灵活使用Rownum和RowId 在Oracle数据库中,`ROWNUM` 和 `ROWID` 是两个非常重要的概念,它们可以帮助我们在查询数据时实现更灵活的数据管理。本文将详细介绍这两个概念的区别及其使用方法,并通过...
一、oracle中rownum 用于从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,而且rownum不能以任何表的名称作为前缀。 1、rownum 对于
本文将详细介绍如何利用Oracle中的`MINUS`操作符以及`ROWNUM`伪列来实现这一功能。 #### ROWNUM伪列简介 在介绍具体方法之前,我们首先了解一下`ROWNUM`伪列的基本概念。`ROWNUM`是Oracle提供的一种特殊的伪列,它...