Oracle ROWNUM及分页查询的一点总结
Oracle ROWNUM及分页查询的一点总结Sql代码DROP TABLE TT3;CREATE TABLE TT3 AS SELECT * FROM DBA_OBJECTS WHERE ROWNUM <10;--ROWNUM < N是永远成立的SELECT OWNER,OBJECT_NAME,ROWNUM FROM TT3 WHERE ROWNUM <10;OWNER OBJECT_NAME ROWNUM------------------------------ ---------------------------------------------------SYS ICOL$ 1SYS I_USER1 2SYS CON$ 3SYS UNDO$ 4SYS C_COBJ# 5SYS I_OBJ# 6SYS PROXY_ROLE_DATA$ 7SYS I_IND1 8SYS I_CDEF2 9--ROWNUM > N是不成立的OWNER OBJECT_NAME ROWNUM------------------------------ -----------------------------------------------------可以看出ROWNUM并不是按照排序后的结果然后分配ROWNUM,而是一开始取数据就开始分配admin@ORCL> column OBJECT_NAME for a20;admin@ORCL> SELECT ROWNUM,OWNER,OBJECT_NAME FROM TT3 ORDER BY OBJECT_NAME;ROWNUM OWNER OBJECT_NAME---------- ------------------------------ --------------------3 SYS CON$5 SYS C_COBJ#1 SYS ICOL$9 SYS I_CDEF28 SYS I_IND16 SYS I_OBJ#2 SYS I_USER17 SYS PROXY_ROLE_DATA$4 SYS UNDO$--解决上面的问题,需要采用下面的sqladmin@ORCL> SELECT ROWNUM,OWNER,OBJECT_NAME FROM (SELECT * FROM TT3 ORDER BY OBJECT_NAME );ROWNUM OWNER OBJECT_NAME---------- ------------------------------ --------------------1 SYS CON$2 SYS C_COBJ#3 SYS ICOL$4 SYS I_CDEF25 SYS I_IND16 SYS I_OBJ#7 SYS I_USER18 SYS PROXY_ROLE_DATA$9 SYS UNDO$--测试若按照非唯一值去分页,然后查看是否获得非重复值,结果存在重复值DROP TABLE TT5;CREATE TABLE TT5 AS SELECT * FROM DBA_OBJECTS WHERE ROWNUM <10;INSERT INTO TT5 SELECT * FROM TT5;INSERT INTO TT5 SELECT * FROM TT5;INSERT INTO TT5 SELECT * FROM TT5;COMMIT;--共产生了72条数据admin@ORCL> SELECT COUNT(*) FROM TT5;COUNT(*)上一个:oracle复制表数据
下一个:Oracle JOB实现多线程插入
- 更多Oracle疑问解答:
- 运行exp备份oracle数据库提示oracle-12154错误
- 有没有,生产Oracle Rman 备份脚本的工具啊!
- 初学orcle,希望有大大帮忙解说一下详细步骤,从登录oracle到创建表的过程
- oracle语句问题:一张user表,三个字段,id,name,time,插入记录比如:张三2007,李四2008,张三2011
- 如何写一个ORACLE触发器同步两个表中的数据?
- oracle 如何查看一个服务器上有多少个数据库.
- oracle 创建包的时候错误 求解
- oracle 重复列的问题
- oracle 中如何查处2星期前的数据
- 请教oracle数据库安装中的问题
- 请问谁能提供给我标准的oracle ERP的数据库表结构并详细说明各表主要的作用?
- 安装oracle遇到的问题 invalid entry CRC (expected 0x3e12e795 but got 0x9db0e9fd)
- 我的是ORACLE 10G,在RMAN中如何按指定的时间恢复数据文件啊?
- oracle为什么没有自动增长列
- oracle快捷键都有哪些啊?