1. 程式人生 > >Oracle高階查詢——子查詢(分頁顯示案例)

Oracle高階查詢——子查詢(分頁顯示案例)

案例:分頁查詢顯示員工資訊:顯示員工號、姓名、薪水

        1.每頁顯示四條記錄

        2.顯示第二頁的員工

        3.按照月薪降序排序

分析:

        1.可以通過偽列rownum來顯示查詢資訊所在的位置。

         注意:rownum只能使用<、<=,不能使用>、>=。 Oracle中的行號(rownum)永遠從1開始

        2.先按照降序查詢出員工資訊

           select rownum,empno,ename,sal from emp  order by sal desc;

        3.將上面所查詢出來的結果作為一個集合,查詢出前面的8條記錄

           select rownum, empno,ename,sal from (

                      select rownum,empno,ename,sal from emp  order by sal desc)  e1

           where   rownum <8;

        4.將已經查詢出的前8條記錄作為一個集合,這個集合中的rownum則不是行號,它可以作為所查詢結果的

            第一列顯示在最終的查詢結果中。查詢出第5、6、7、8條記錄即第二頁的員工資訊。       

            select r,empno,ename,sal 
                    from( select rownum  r, empno,ename,sal 
            
from (select rownum,empno,ename,sal from emp  order by sal desc) e1
                    where   rownum <=8) e2

            where   r>4; 

          如圖所示: