关于 rownum
来源:互联网 发布:windows下u盘重装osx 编辑:程序博客网 时间:2024/05/17 23:15
1. Oracle 多个伪列中的一种(不是表的实际列);
2. 返回从表中选择时,返回的行的序列号,第一行为 1,依次递增;
3. rownum 的分配在 order by 之前,所以会被 order by 扰乱;
n 为自然数
1) 获得前 n 行:select * from tb_code where rownum < n
2) 获得第一行:select * from tb_code where rownum = 1
过程:1) Oracle 解析 SQL 查询条件
2) 获得满足条件的第一行记录,设定当前行记录的 rownum = 1;
3) 获得满足条件的第二行记录,设定当前行记录的 rownum = rownum + 1;
所以,当条件限定为 rownum > n 时,2) 步骤始终无法获得,所以查询结果总是空集
5) 获得 n < rownum < m 的结果集,需要使用子查询,如下:
select *
from (select TC.*
,ROWNUM as ROWNUM_X
from TB_CODE TC
where ROWNUM < m)
where ROWNUM_X > n
2. 返回从表中选择时,返回的行的序列号,第一行为 1,依次递增;
3. rownum 的分配在 order by 之前,所以会被 order by 扰乱;
n 为自然数
1) 获得前 n 行:select * from tb_code where rownum < n
2) 获得第一行:select * from tb_code where rownum = 1
3) 错误:select * from tb_code where rownum = n (n>1)
4) 错误:select * from tb_code where rownum > n (n>1);
rownum 只用于向下限制范围!
过程:1) Oracle 解析 SQL 查询条件
2) 获得满足条件的第一行记录,设定当前行记录的 rownum = 1;
3) 获得满足条件的第二行记录,设定当前行记录的 rownum = rownum + 1;
所以,当条件限定为 rownum > n 时,2) 步骤始终无法获得,所以查询结果总是空集
也就是说,当查询到第一条记录时,该记录的ROWNUM为1,但条件要求ROWNUM>1,
因此不符合,继续查询下一条;因为前面没有符合要求的记录,因此下一条记录过来后,其ROWNUM还是为1,
如此循环,就不会产生结果。
5) 获得 n < rownum < m 的结果集,需要使用子查询,如下:
select *
from (select TC.*
,ROWNUM as ROWNUM_X
from TB_CODE TC
where ROWNUM < m)
where ROWNUM_X > n
0 0
- 关于rownum
- 关于ROWNUM
- 关于rownum
- 关于ROWNUM .
- 关于 rownum
- 关于rownum 的用法
- 关于Rownum的问题
- 关于ROWNUM的使用
- 关于oracle的rownum
- 关于ROWNUM的使用
- 关于Rownum的使用
- 关于Oracle中的rownum函数
- 关于oracle分页中的rownum
- 关于SQL中RowNum分页
- 关于oracle rownum的分析
- oracle关于rownum的【整理】
- Rownum
- rownum
- Android性能优化典范
- java中使用锁来控制线程的调用
- hdu 5159 概率
- Iocomp包含组件介绍(一)
- Song Jiang's rank list【理解题意】
- 关于 rownum
- overflow:auto;子元素浮动后父容器高度自适应问题
- JDK源码-HashSet
- 金庸才是炒股高手!炒股理念早写的明明白白
- Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框
- 记录一下Appium中使用swipe方法时候出现的问题(Appium1.0.0.3版本)
- 计算机视觉大牛的博客
- 【centOS安装小记】硬盘安装centOS
- 关于事务的回滚