目前我知道有两种Oracle分页语句,下面与大家分享一下,如果有什么问题,希望大家给予指点:
第一种:
SELECT *
FROM (SELECT TEM.*, ROWNUM RN
FROM (SELECT 列名称1,列名称2 ......FROM 表名称) TEM
WHERE ROWNUM <= 22)
WHERE RN > 0;
第二种:
SELECT 列名称1,列名称2 ......
FROM (SELECT ROW_NUMBER() OVER(ORDER BY 列名称 DESC/ASC) RN, 列名称1,列名称2 ...... FROM 表名称)
WHERE RN BETWEEN 0 AND 22;
首先:第一点:第一种的效率较高,第二种稍低一些,用时大约是第一种的三倍。
第二点:如果把表改成视图第一种存在重复数据(至于原因我未知),而第二种不会出现此种情况。