Oracle分页查询sql语句

Oracle中分页和MySql中的分页不同,MySql中的分页使用关键字limit即可,相对简单一点,Oracle中分页使用rownum ,相对复杂一点。

sql语句如下:

SELECT *
FROM
    (
        SELECT t.*, rownum rn
        FROM
            (
                SELECT * FROM USER;
            ) t
    )
WHERE
    rn > (currentPage-1)*pageSize
AND rn <= currentPage*pageSize;

Oracle中rownum是虚拟列,是得出结果后,再进行计算的。所以,只能是小于的,无法大于,要使用的大于,就必须使用别名,如上代码中的rn就是使用别名的写法。