在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;
来源:https://www.cnblogs.com/wanyakun/archive/2011/08/15/3403273.html