2012년 8월 21일 화요일

페이징 처리




SELECT * FROM (
     SELECT ROWNUM AS RNUM, A.* FROM (
          {검색쿼리 - 정렬이 필요할 경우 정렬조건 포함}
    ) A WHERE ROWNUM <= {범위까지}
) WHERE RNUM > {범위부터};

OR

===========================

SELECT * FROM (
     SELECT /*+ INDEX_ASC or INDEX_DESC(A {정렬조건 인덱스명}) */
                 ROWNUM AS RNUM, A.*  FROM (
          {검색쿼리 - 정렬이 필요한 경우 정렬조건을 포함하지 않고 ORACLE 힌트사용}
     ) A WHERE ROWNUM <= {범위까지}
) WHERE RNUM > {범위부터};


ROW_NUMBER()를 이용한 페이징 처리
=============================
SELECT * FROM (
SELECT
A_TITLE
,ROW_NUMBER() OVER (ORDER BY A_IDX ASC) ROWNUMBER
FROM BOARD)
WHERE ROWNUMBER BETWEEN 100 AND 120

댓글 없음:

댓글 쓰기