结果集分页的两种方式

结果集分页的两种方式:使用ROWNUM或者ROW_NUMBER()
 筛选sal排名为6--10显示在第二页的记录
 ①:使用row_number的方式,显示6--10的记录
 select *
  from (select row_number() over(order by sal desc nulls last) rn,
               empno,
               ename,
               sal
          from emp)
 where rn >= 6
   and rn <= 10;


       RN      EMPNO ENAME                       SAL
--------- ---------- -------------------- ----------
        6       7782 CLARK                      2450
        7       7499 ALLEN                      1600
        8       7844 TURNER                     1500
        9       7934 MILLER                     1300
       10       7521 WARD                       1250
②:使用ROWNUM的方式,显示6--10的记录
 select *
  from (select *
          from (select rownum rn, empno, ename, sal
                  from (select empno, ename, sal
                          from emp
                         order by sal desc nulls last))
         where rn <= 10)
 where rn >= 6;


        RN      EMPNO ENAME                       SAL
---------- ---------- -------------------- ----------
         6       7782 CLARK                      2450
         7       7499 ALLEN                      1600
         8       7844 TURNER                     1500
         9       7934 MILLER                     1300
        10       7521 WARD                       1250

你可能感兴趣的:(Development)