Oracle取TOP N条记录

在SQL Server里面有top关键字可以很方便的去前N条记录,但是Oracle里面却没有,常用的简单的使用方法如下,: 方法1:利用ROW_NUMBER函数
SELECT NO FROM (
    SELECT ROW_NUMBER() OVER (ORDER BY NO) RNO, NO FROM ROWNUM_TEST
)
WHERE RNO <= 5
ORDER BY NO ;
取出中间 n 条记录
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:利用子查询
SELECT NO FROM (
    SELECT NO FROM ROWNUM_TEST
    ORDER BY NO
)
WHERE ROWNUM <= 5
ORDER BY NO ;
取出中间 n 条记录
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;
posted @ 2011-08-15 23:30  坤坤同学  阅读(319)  评论(0编辑  收藏  举报