1. Top-N Query
     - Count Stopkey를 이용한 top-n 쿼리의 구현
SELECT *
  FROM (
         SELECT /*+ index(t employee_id) */ 
                t.* 
           FROM employee t
       )
 WHERE rownum <= 10
;
2. Pagination Query
   (1) index_desc 힌트 및 Count Stopkey를 이용한 페이징 처리
SELECT * 
  FROM ( 
         SELECT /*+ index_desc(t board_seq) */ 
                rownum AS rnum, 
                t.* 
           FROM board t 
          WHERE rownum <= :page_cmt * :current_page 
       ) 
 WHERE rnum > :page_cnt * (:current_page - 1)
 ;
(2) 게시글의 갯수가 정해져 있는 경우의 페이징 처리 : first_rows(n) 힌트 이용
SELECT * 
  FROM ( 
         SELECT /*+ index_desc(t board_seq) first_rows(10) */ 
                rownum AS rnum, 
                t.* 
           FROM board t 
          WHERE rownum <= :page_cmt * :current_page 
       ) 
 WHERE rnum > :page_cnt * (:current_page - 1)
 ;
* :page_cnt  -> 게시글 갯수, :current_page -> 현재 조회할 페이지
'Database > Oracle' 카테고리의 다른 글
| Oracle 올림(절상) 처리(RoundUp) 함수 (0) | 2018.06.27 | 
|---|
댓글