Oracle查询中rownum与Order by查询的关系(取数据的前几条)
来源:互联网 发布:asp网络程序员招聘 编辑:程序博客网 时间:2024/04/28 21:18
在开发应用的时候,把数据按照一定的规则排序后再取前几条数据这种操作是很平常的事情。我们在Oracle中常用的就
是order by,然后取得rownum小于多少的数据这种方法。不过如果对Oracle不熟悉,也许就会发现你写的SQL语句检索
出来的值不正确,这个是为什么呢.
因为Oracle在检索的时候,会首先把数据都检索出来,然后在排序段中进行排序(也就是说,先有rownum值,然后才
order by排序)。假如你有一个SQL语句如下所示。
select emp_no from emp where rownum < 10 order by emp_no;
在检索的时候,会首先把数据检索出来,也就是把EMP表数据都检索出来,然后再Order by排序操作。因为
ROWNUM 数据是在排序前就检索出来的了,所以不能利用ROWNUM来取得排序后的前10条操作。那么应该如何操作
呢。其实很简单,利用子查询,先排序,再取ROWNUM。如下所示
select emp_no from (select emp_no from emp order by emp_no) where rownum<10;
这样你就会发现你最后可以检索到你需要的结果了,但是这样写的缺点就是比上一个执行的会慢,性能上可能不是很好。- Oracle查询中rownum与Order by查询的关系(取数据的前几条)
- Oracle查询中rownum与Order by查询的关系(取数据的前几条)
- Oracle查询中rownum与Order by查询的关系
- ORACLE中rownum和order by 的关系
- Oracle中rownum与order by的执行顺序
- oracle查询语句中select from where group by having order by的解释与应用
- oracle查询语句中select from where group by having order by的解释与应用
- oracle查询语句中select from where group by having order by的解释与应用
- rownum与order by 子句的执行顺序关系
- oracle中rownum的用法,查询某个区间的数据
- oracle中rownum的用法,查询某个区间的数据
- oracle中查询最近的一条记录(FIRST_VALUE() OVER(PARTITION BY ORDER BY ))
- oracle-union order by rownum排序与取数
- Oracle查询rownum与rowid的不同之处
- oracle分页与order by 的关系
- oracle rownum与order by
- oracle rownum与order by
- Oracle 中 ROWNUM order by
- 反射
- 实体框架
- 项目经理、系统架构师或技术骨干应该具备的水平
- poj 1456 supermarket
- 一个实例明白AutoResetEvent和 ManulResetEvent的用法
- Oracle查询中rownum与Order by查询的关系(取数据的前几条)
- CRF++的简单使用
- Oracle基础(一):表空间和数据文件
- 游戏开发之碰撞检测
- 正向代理和反向代理
- jQuery 数据缓存data(name, value)详解及实现
- fork与vfork(未完,正在每天更新中。。。。。)
- 基于CRF的中文分词
- aptitude 使用快速参考