DataBase/Oracle
게시판 페이징하기
고독한마법사
2008. 11. 13. 18:25
type 1 한페이지 10개씩 보여주고 100페이지라면
1000개의 row를 가져온 다음 뒤집어서 10개만 보여주기
SELECT
*
FROM (
SELECT
/*+ index_desc(a 테이블인덱스) */
a.*
,ROWNUM AS rnum
FROM
테이블 a
WHERE ROWNUM <= 18000
)
WHERE
rnum > 17990
type 2 한페이지 10개씩 보여주고 100페이지라면
990개의 key 값중 최소값을 가져와서 그값보다 작은거 10개만 보여주기
SELECT
/*+ index_desc(테이블 인덱스) */
칼럼명
FROM 테이블
WHERE 테이블키값 <= (
SELECT
/*+ index_desc(테이블 인덱스) */
min(테이블키값)
FROM 테이블
WHERE
ROWNUM < 990
)
and rownum <= 10