类别:数据库

日期:2022-03-10 浏览:2156 评论:0

src=http___upload-images.jianshu.io_upload_images_20543630-48a2b3ac07c6c250.jpg&refer=http___upload-images.jianshu.jpg

由于Oracle不支持select top 语句,所以在Oracle中经常是用order by 跟rownum
的组合来实现select top n的查询。
简单地说,实现方法如下所示:
select 列名1 ...列名n from
(
select 列名1 ...列名n 
   from 表名 order by 列名1
)
where rownum <=N(抽出记录数)
order by rownum asc

如:select id,name from (select id,name from student order by name) where rownum<=10 order by rownum asc

按姓名排序取出前十条数据

 

附:取100-150条数据的方法

1. 最佳选择:利用分析函数

       row_number() over ( partition by col1 order by col2 )                               

比如想取出100-150条记录,按照tname排序
     select tname,tabtype from (                               

     select tname,tabtype,row_number() over ( order by tname ) rn from tab                

) where rn between 100 and 150;

2. 使用rownum 虚列

select tname,tabtype from (                    

      select tname,tabtype,rownum rn from tab where rownum <= 150                  

) where rn >= 100;


本文标题:Oracle 中的Top写法
本文链接:https://vtzw.com/post/917.html
作者授权:除特别说明外,本文由 零一 原创编译并授权 零一的世界 刊载发布。
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。
 您阅读本篇文章共花了: 

 可能感兴趣的文章

评论区

发表评论 / 取消回复

必填

选填

选填

◎欢迎讨论,请在这里发表您的看法及观点。