简单分析OracleRownum

在开发应用的时候,把数据按照一定的规则排序后再取前几条数据这种操作是很平常的事情。我们在Oracle中常用的就是order by,然后取得Oracle Rownum小于多少的数据这种方法。不过如果对Oracle不熟悉,也许就会发现你写的SQL语句检索出来的值不正确,这个是为什么呢。

创新互联主营陇南网站建设的网络公司,主营网站建设方案,重庆APP开发公司,陇南h5小程序设计搭建,陇南网站营销推广欢迎陇南等地区企业咨询

因为Oracle在检索的时候,会首先把数据都检索出来,然后在排序段中进行排序。假如你有一个SQL语句如下所示:

 
 
 
  1. SELECTEMP_NOFROMEMPWHEREROWNUM < 10ORDER BYEMP_NO 

在检索的时候,会首先把数据检索出来,也就是把EMP表数据都检索出来,然后再Order by排序操作。因为Oracle Rownum 数据是在排序前就检索出来的了,所以不能利用Oracle Rownum来取得排序后的前10条操作。那么应该如何操作呢。其实很简单,利用子查询,先排序,再取 Oracle Rownum。如下所示:

 
 
 
  1. SELECTEMP_NOFROM(  
  2. SELECTEMP_NOFROM EMPORDER BYEMP_NO  
  3. )  
  4. WHERE  
  5. ROWNUM < 10 

【编辑推荐】

  1. 摘要Oracle Check约束
  2. 概论Oracle索引创建策略
  3. Oracle Where子句研究结论
  4. 你是否懂得Oracle UNION ALL
  5. 概述Oracle Unique约束

分享文章:简单分析OracleRownum
网页网址:http://www.shufengxianlan.com/qtweb/news8/398958.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联