Oracle伪列rownum
来源:互联网 发布:证券投资交易软件 编辑:程序博客网 时间:2024/05/13 05:51
Oracle伪列rownum
Oracle基础知识:伪列rownum,伪列就像表中的列一样,但是在表中并不存储。伪列只能查询,不能进行增删改操作。
在查询的结果集中,ROWNUM为结果集中每一行标识一个行号,第一行返回1,第二行返回2,以此类推。通过ROWNUM伪列可以限制查询结果集中返回的行数。
ROWNUM与ROWID不同,ROWID是插入记录时生成,ROWNUM是查询数据时生成。ROWID标识的是行的物理地址。ROWNUM标识的是查询结果中的行的次序。
案例4:查询出员工表中前5名员工的姓名,工作,工资。
代码演示:ROWNUM
SQL> SELECT ROWNUM,ENAME,JOB,SAL FROM EMP WHERE ROWNUM<=5;
ROWNUM
ENAME
JOB
SAL
1
SMITH
CLERK
800
2
ALLEN
SALESMAN
1600
3
WARD
SALESMAN
1250
4
JONES
MANAGER
2975
5
MARTIN
SALESMAN
1250
案例5:查询出工资最高的前5名员工的姓名、工资和工资。
案例分析
“工资最高的前5名”需要先降序排序,再取前5名,但是生成ROWNUM操作比排序要早,排序时已经连同ROWNUM一起排序了,因此不能直接在案例1的语句中直接加上Order by就行,而是需要对排序的结果重新做二次查询,产生新的ROWNUM才能作为查询的条件依据。
代码演示:ROWNUM应用
SQL> SELECT ROWNUM,T.* FROM ①
2 (SELECT ENAME,JOB,SAL
3 FROM EMP ORDER BY SAL DESC) T ②
4 WHERE ROWNUM<=5
5 /
ROWNUM
ENAME
JOB
SAL
1
KING
PRESIDENT
5000
2
SCOTT
ANALYST
3000
3
FORD
ANALYST
3000
4
JONES
MANAGER
2975
5
BLAKE
MANAGER
2850
代码解析:
① T是子查询②的别名,这里的ROWNUM是第二次查询后的ROWNUM。
案例6:查询出表EMP中第5条到第10条之间的记录。
案例分析
这是分页的应用。在查询条件中,如果查询条件中ROWNUM大于某一正整数,则不返还任何结果。
代码演示:ROWNUM分页
SQL> SELECT * FROM
2 (SELECT ROWNUM R,ENAME,JOB,SAL ①
3 FROM EMP WHERE ROWNUM<=10) ②
4 WHERE R>5 ③
5 /
R
ENAME
JOB
SAL
6
BLAKE
MANAGER
2850
7
CLARK
MANAGER
2450
8
SCOTT
ANALYST
3000
9
KING
PRESIDENT
5000
10
TURNER
SALESMAN
1500
代码解析:
① 内部查询中得到ROWNUM 并且用别名R记录,供外层条件③使用。
② 内部查询的ROWNUM,与外出的ROWNUM列是平等的两列。
③ 使用的R是内层产生的ROWNUM,在外层看来,内层查询的ROWNUM是正常的一列。
来源:Oracle培训
- Oracle rownum 伪列
- oracle伪列rownum
- Oracle伪列rownum
- Oracle伪列rownum
- Oracle-伪列(rownum)
- oracle中的伪列rownum
- Oracle Rownum 伪列详解
- oracle中的伪列rownum
- Oracle Rownum 伪列详解
- Oracle Rownum 伪列详解
- Oracle中的伪列ROWNUM
- Oracle Rownum 伪列详解
- oracle中的伪列 rownum
- Oracle之伪列ROWNUM
- Oracle:rowid、rownum(伪列)
- [转]oracle伪列 rowid和rownum
- oracle中的rownum伪列的使用
- oracle中的rownum伪列深层分析
- 第九周项目2——对称矩阵压缩存储的实现与应用(1)
- 第9周项目4-广义表算法库及应用(2)
- Android 下FFmpeg打包so教程,2016年11月最新
- AsyncTask
- 第九周项目3 矩阵相加
- Oracle伪列rownum
- DL_POLY的安装问题
- JAVA如何定义和书写业务级interface代码
- (第九周项目2)对称矩阵压缩存储的实现与应用(2)
- sql 约束(sql server 环境)
- Android studio代码提交github管理
- iOS 通过代码修改AutoLayout的约束连线,来实现调整view的位置
- 第9周项目2-对称矩阵压缩存储的实现与应用(2)
- 第九周项目——猴子选大王(数组版)