在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;
