- 浏览: 461128 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (538)
- C/C++ Primer (69)
- Objective-C Primer (102)
- Python Primer (19)
- JavaScript Primer (1)
- Java Primer (37)
- PHP Primer (17)
- 泛 Linux (37)
- Shell Script (21)
- APUE (21)
- UNP__1&2 (19)
- NetWork (7)
- Oracle周边 (38)
- Mysql里边 (6)
- Windows技 (9)
- 简单算法 & 数据结构 (14)
- 设计模式 (6)
- GTK历程 (12)
- 工具使用 (25)
- 杂事 (23)
- 一些概念 (17)
- Web方面 (10)
- myCodeTools (9)
- ^未 竟$ (13)
- 硬件通信 (2)
- Games (1)
最新评论
Select SITE,REACINFO From TblWorldCupReac Where To_char(REACDATE,'yyyy-mm-dd') = To_char(sysdate,'yyyy-mm-dd') And SITE > 0 And rownum < 2; Select SITE,REACINFO From ( Select SITE,REACINFO From TblWorldCupReac Where To_char(REACDATE,'yyyy-mm-dd') = To_char(sysdate,'yyyy-mm-dd') Order by SITE desc ) Where Rownum < 2; Select * From EMP Where SAL > 1500; EMPNO SAL ---------- ---------- 7499 1600 ! 7566 2975 ! 7698 2850 ! 7782 2450 ! 7788 3000 7839 5000 7902 3000 可以得出结论,表默认是用Rowid来排序,EMPNO有序,SAL列无序。 Select * From EMP Where SAL > 1500 And Rownum < 4; EMPNO SAL ---------- ---------- 7499 1600 7566 2975 7698 2850 取前几行的依据是Rowid。 Select * From EMP Where SAL > 1500 And Rownum < 4 Order by SAL; EMPNO SAL ---------- ---------- 7499 1600 7698 2850 7566 2975 可以看出,Order by 是在Rownum之后才发挥作用的。
结论: Oracle默认使用Rowid(Rowid与主键的值无关)排序; Order by 在Rownum 之后起作用; 如想取某列排序后的前几条,再来个嵌套的Select Rownum < X PS:数据只是建立在偶尔的观察,故结论也只是偶尔现象,仅供参考……
发表评论
-
数据库的一些概念
2012-10-30 13:12 682Web里面,数据库占了半壁江山, 本着PC有价数据无价,DBA ... -
SQLite
2011-11-17 16:52 676官方主页:http://www.sqlit ... -
一些表的概念
2011-09-13 09:59 468平行表 预处理表 流水表 记账表 -
Oracle__View
2011-08-11 10:03 550http://database.51cto.com/art/2 ... -
Oracle__跨库映射
2011-02-23 11:42 531http://blog.csdn.net/huzhenwei/ ... -
Oracle__运行中的SQL
2011-02-16 17:05 580运行中的SQL Select a.program,b.sp ... -
Oracle__数据字典__表结构
2011-02-11 10:02 985SQL> desc all_tab_columns ... -
Oracle__约束
2011-01-17 13:13 504约束查询: Select constraint_name ... -
Oracle__大表__索引__查询
2011-01-14 09:37 627http://hi.baidu.com/ak456/blog/ ... -
Oracle__undo__redo
2011-01-14 09:34 803http://space.itpub.net/8750110/ ... -
Oracle__序列Sequence
2011-01-11 16:50 681http://database.51cto.com/art/2 ... -
Oracle__系统信息
2011-01-04 11:53 529版本 Select * From v$Version; S ... -
Oracle__进程
2011-01-04 10:33 428Select a.username, a.machine, ... -
Oracle__日志
2010-09-02 17:19 754Oracle日志基本信息 http://zhidao.baid ... -
spool
2010-08-06 12:03 747set linesize 1000; set pag ... -
Oracle逻辑结构相关数据字典
2010-08-05 14:48 774http://space.itpub.net/1440192 ... -
Nvl( ) 函数
2010-08-05 11:05 665http://blog.chinaunix.net/u/2 ... -
InstantClient安装使用
2010-08-02 10:54 3229http://wudx.iteye.com/blog/4225 ... -
Oracle那些函数
2010-07-29 11:36 565mod左%右,求余abs绝对值upper转换为大字nvl替 ... -
dbms_random
2010-07-29 10:11 1637http://www.blogjava.net/wxqxs/a ...
相关推荐
SELECT ROWID, ROWNUM, MONTH, SELL FROM SALE ORDER BY ROWID; ``` 此查询将返回根据 `ROWID` 排序的结果,可以看到 `ROWID` 与每条记录的实际位置有关,而不是根据 `MONTH` 列的值: ```plaintext ROWID ROWNUM ...
例如,当我们需要根据行号获取特定行的数据,而又不希望影响其他查询时,可以先使用`ROWNUM`筛选出行号,再用`ROWID`定位具体行。 四、ROWNUM使用技巧 1. **分页查询**:通常用于实现分页功能,例如`SELECT * FROM ...
rowid 是相对不变的,除非使用 order by 语句,否则 rowid 的值将保持不变。 二、rownum 概念 rownum 是 Oracle 数据库中的另一个虚列,用于标示 SQL 语句的输出结果排序。rownum 是一个动态的值,取决于 SQL 语句...
需要注意的是,`ROWNUM`是在查询执行过程中动态生成的,并且在`ORDER BY`子句之前被计算。这意味着,如果不配合`ORDER BY`,`ROWNUM`的值可能不是预期的顺序。 **ROWID与ROWNUM的区别** - `ROWID`是物理地址,而`...
在文中提到的例子中,即使为列添加了索引,`ORDER BY`操作仍然没有按照预期进行,这主要是因为`ROWNUM`不是一个稳定的排序依据,它只是表示查询结果集的顺序,而不是数据本身的物理存储顺序。 `ROWID`是Oracle...
Oracle 的分页查询 ...Oracle 中的分页查询可以使用 ROWNUM 伪列和 ORDER BY 子句来实现,但是需要注意 ROWNUP 伪列的生成机制和 ORDER BY 子句的影响。同时,我们也可以使用 ROWID 列来实现真正的分页查询。
SELECT ROWNUM, ID, NAME FROM STUDENT ORDER BY NAME; ``` 可以看出,ROWNUM并不是按照NAME列来生成的序号。系统是按照记录插入时的顺序给记录排的号,ROWID也是顺序分配的。为了解决这个问题,必须使用子查询。 ...
SELECT ROWNUM, id, name FROM student ORDER BY name; ``` 可以看出,ROWNUM 并不是按照 name 列来生成的序号。系统是按照记录插入时的顺序给记录排的号,ROWID 也是顺序分配的。为了解决这个问题,必须使用子查询...
- 排序和过滤:rownum可以在ORDER BY之后结合使用,以筛选特定行。 三、rowid的局限性和注意事项 - 兼容性:rowid是Oracle特有的,不适用于其他数据库系统,跨数据库迁移时需注意。 - 物理位置:rowid记录的数据...
Oracle提供了一些内置的伪列供用户使用,如`ROWID`和`ROWNUM`等,这些伪列可以帮助开发人员更方便地进行查询、排序等操作。 #### 二、ROWID与ROWNUM详解 **ROWID:** - **定义**:ROWID是Oracle中用于唯一标识表中...
SELECT rowid rid, cid FROM t_xiaoxi ORDER BY cid DESC ) WHERE rownum ) WHERE rn > 9980 ) ORDER BY cid DESC; ``` 在这个例子中,首先通过内层子查询获取前10000条记录的ROWID,然后从中筛选出第9981到...
例如,找出工资最高的五位员工,可以通过先对所有员工按工资降序排列,然后筛选前五个记录:`SELECT * FROM (SELECT * FROM employees ORDER BY salary DESC) WHERE rownum 。 数据分页是数据库操作中的常见需求,...
select rowid rid from t_xiaoxi order by cid desc ) where rownum ) where rn > 9980 ) order by cid desc; -- 分析函数ROW_NUMBER()分页 select * from ( select t.*, row_number() over(order by cid...
select t.*, t.rowid from t_stu t order by t.s_birthday desc; ``` 这条SQL语句会返回所有记录,并按照`s_birthday`字段降序排列。然而,如果我们要获取第一页(假设每页3条记录)的数据,仅仅使用`WHERE ROWNUM ...
相比于ROWNUM,ROW_NUMBER()可以在查询过程中动态生成,可以根据特定条件(如ORDER BY子句)生成排序后的行号,更适合复杂的分页需求。使用ROW_NUMBER()的分页查询通常需要嵌套查询,以确保行号的正确生成。 **基于...
若要选取最长匹配项,可以使用 `INSTR()` 函数和 `LENGTH()` 函数结合 `ORDER BY` 和 `ROWNUM`,例如找出与给定字符串最匹配的记录。 10. **日期和字符串转换**: SQL 提供了多种日期格式化选项,如 `TO_CHAR()` ...
SELECT ROWNUMBER() OVER (ORDER BY id ASC) AS rowid FROM table WHERE rowid ) WHERE rowid > startIndex; ``` ### DB2/AS400分页方法 DB2/AS400版本的DB2提供了一种更简洁的分页方式。 #### 5. 使用`...
WHERE rowid NOT IN (SELECT rowid FROM a_matrix_navigation_map WHERE rownum ) AND rownum ; ``` 2. **嵌套查询**: ```sql SELECT * FROM ( SELECT A.*, rownum r FROM ( SELECT * FROM a_matrix_...