rownum 的一点儿研究
做如下测试:
一 当where 和 rownum 在同一行时 rownum不能和 > ,>= (>=1 可以) = 这些算术运算符连用,当使用分页查询时可以!
SQL> select rownum ,ename from emp where rownum >=1;
ROWNUM ENAME
---------- --------------------------------------------------
1 SMITH
2 ALLEN
3 WARD
4 JONES
5 MARTIN
6 BLAKE
7 CLARK
8 SCOTT
9 KING
10 TURNER
11 ADAMS
12 JAMES
13 FORD
14 MILLER
已选择14行。
返回全部的行。但是下面的会让你诧异不已吧,怎么没有数据?
SQL> select rownum ,ename from emp where rownum >5;
未选定行
SQL> select rownum ,ename from emp where rownum =5;
未选定行
SQL> select rownum ,ename from emp where rownum !=6;
ROWNUM ENAME
---------- --------------------------------------------------
1 SMITH
2 ALLEN
3 WARD
4 JONES
5 MARTIN
SQL> select rownum ,ename from emp where rownum <=5;
ROWNUM ENAME
---------- ----------
1 SMITH
2 ALLEN
3 WARD
4 JONES
5 MARTIN
已选择5行。
解释一下: 在使用rownum <=5 时,会发生下面的操作:
1 oracle 查询,
2 oracle取得第一个符合条件的行,并将该行的rownum 设为1
3 有5行了吗? 若没有,则继续取值,步骤 4 ,如果有5行 就不再取值了。
4 oracle 取下一行,行号递增。下一行的rownum为2,直到rownum 为5
5 返回 第三步。
在分析rownum>5或=5的情况的情况。因为第一行数据的rownum永远为1 ,所以不可能>5或=5,所以就没有结果了。
SQL> select rownum ,ename from emp where rownum=1;
ROWNUM ENAME
---------- --------------------------------------------------
1 SMITH --有结果
二 rownum 前面不能加表的别名
SQL> select e.rownum ,ename from emp e where rownum <=5;
select e.rownum ,ename from emp e where rownum <=5
*
第 1 行出现错误:
ORA-01747: user.table.column, table.column 或列说明无效
rownum 的一点儿研究相关推荐
- java命令框编译代码的方式_在命令行模式下如何编译运行Java代码
由于已经习惯了在Windows环境中进行开发,最近在尝试将开发环境转移到Linux上面.遇到一篇值得参考的外文,特翻译记录一下.[只翻译了部分] 一直被集成开发环境和自动构建工具"溺爱&qu ...
- 10年追逐技术潮流,差一点儿就两手空空,竹篮打水,留给我的只有经验
我是96年开始接触电脑,那时候我们学校的电脑是DOS的,我们学编写程序时Pascal语言,后来又学了C,老师也教过C++,但是根本没听懂老师在讲啥,这个程序又在哪里能用上,想输出个汉字,想弄个啥出来, ...
- 从一点儿不会开始——Unity3D游戏开发学习(一)
一些废话 我是一个windows phone.windows 8的忠实粉丝,也是一个开发者,开发数个windows phone应用和两个windows 8应用.对开发游戏一直抱有强烈兴趣和愿望,但奈何 ...
- Oracle的rownum原理和使用
俺程序中用到的rownum分页+排序的实现(有机会仔细研究) select * from (select f.*, rownum as rnum from (select a.CIPID as cip ...
- Jqgrid pager 关于“local” dataType 动态加载数据分页的研究(没好用的研究结果)...
系列索引 Web jquery表格组件 JQGrid 的使用 - 从入门到精通 开篇及索引 Web jquery表格组件 JQGrid 的使用 - 4.JQGrid参数.ColModel API.事件 ...
- oracle rowid与rownum的使用
一.rowid的定义: 1.rowid是数据库的一个伪列,建立表的时候数据库会自动为每个表建立ROWID列,是数据库中每一条记录的唯一标识,存储每条记录的实际物理地址,对记录的访问是基于ROWID. ...
- Python向左,数学向右:乌拉姆的素数研究
1. 引子 我是一只猫.听起来有点惊悚,但这是千真万确的事实. 那一年--这样说,并不一定意味着一个历史故事的开始,因为我没有过去和将来的概念.我可以在时间维度上任意移动,就像从东走到西或者从西走到东 ...
- Oracle 12C In-Memory特性研究
Oracle 12C In-Memory特性研究 一.Oracle In-Memory 1.1 In-Memory 开启方法 1.2 开启与关闭IM column store 1.3 inmemory ...
- 中国早期概率论与数理统计学研究达到世界先进水平的杰出学者许宝騄(P.L.Hsu, 1910-1970)
许宝騄( P.L.Hsu, 1910-1970) 许宝騄,中国数学家.在中国开创了概率论.数理统计的教学与研究工作.在奈曼-皮尔逊理论.参数估计理论.多元分析.极限理论等方面取得卓越成就,是多元统计分 ...
最新文章
- BZOJ3572: [Hnoi2014]世界树
- java课堂测试样卷-----简易学籍管理系统
- 详解正则表达式匹配方法 match()
- 码农翻身讲计算机基础:并发,同步与信号量
- Spring中Bean的后置处理器
- 云炬Qtpy5开发与实战笔记 3PyCharm添加PyUIC扩展——将.ui文件转换成.py文件
- Qt MVC编程之table view 的简单应用
- Asp.net2.0 学习资源(转载)
- Maven本地库添加Oracle JDBC驱动
- ZYNQ FPGA控制LED灯不闪烁
- 【18】Python半成品购物车
- Atitit 2016年attilax事业成就表
- (搬运)手机卫星通信详细科普图漫版
- 3ds max批量修改贴图名称脚本(最新版本)
- Mybatis 入门到理解篇
- python列表获取最后一项_如何在Python中获取列表的最后一项?
- Hive 中的时间加减暨间隔函数INTERVAL
- 在鹅厂如何带薪刷视频?
- Mac 查找软件安装位置
- spring boot oauth2 facebook