Oracle 中的Top寫法


由於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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM