Oracle取TOP N條記錄


在SQL Server里面有top關鍵字可以很方便的取出前N條記錄,但是Oracle里面卻沒有top的使用,類似實現取出前N條記錄的簡單方法如下:

方法1:利用ROW_NUMBER函數

取出前5條記錄:

SELECT NO FROM (
    SELECT ROW_NUMBER() OVER (ORDER BY NO) RNO, NO FROM ROWNUM_TEST
)WHERE RNO <= 5  ORDER BY NO ;

取出中間5條記錄:

SELECT NO FROM (
    SELECT ROW_NUMBER() OVER (ORDER BY NO) RNO, NO FROM ROWNUM_TEST
) WHERE RNO BETWEEN 5 AND 10 ORDER BY NO;

 

方法2:利用子查詢

取出前5條記錄:

SELECT NO FROM (
    SELECT NO FROM ROWNUM_TEST  ORDER BY NO
)WHERE ROWNUM <= 5  ORDER BY NO ;

取出中間5條記錄:

SELECT NO  FROM (
    SELECT NO, ROWNUM RNO FROM (
        SELECT NO FROM ROWNUM_TEST  ORDER BY NO
    )
) WHERE RNO BETWEEN 5 AND 10  ORDER BY NO;

  

 

 


免責聲明!

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



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