Oracle取TOP N条记录

北战南征 提交于 2020-03-02 21:47:18
在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;
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!