티스토리 뷰

Database/Oracle

부분 범위 처리

Jared 2009. 7. 12. 16:14
SELECT /*+ INDEX_DESC(A IDX_TAB1) */ A.*
FROM TAB1 A
WHERE ORD <= (
             SELECT /*+ INDEX_DESC(TAB1 IDX_TAB1) */ MIN(ORD)
             FROM TAB1
             WHERE ROWNUM <= 10 * (:v1 - 1) + 1)
AND ROWNUM <= :v2

* ORD 컬럼은 일반적으로 Primary key를 사용하면 된다. 위 예는 업무 요건상 별도 컬럼이 필요하여 ORD 컬럼을 갱신해 주는 형태이기 때문에 부득불 ORD를 사용.
* :v1에는 페이지 번호를 :v2에는 페이지당 출력할 건수를 지정해 주면 된다.
* 검색 조건이 있다면 inline-view와 외부 query에 적당히 where절을 구성해 주면 되겠다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함