오라클 페이징 처리에는 두가지 방법이 있다고 한다.
1. HINT(힌트) 이용
/*
* 추후 내용 보강하겠슴.
*/
2. row_number() 이용
예제1)
SQL 문
select * from
(select tb.*, row_number() over(order by title asc) as num
from TABLE01 tb )
where num between 10 and 20
설명
목적: TABLE01 인 tb에서 모든 field 값들을 얻어온다.
01. tb에서 title 내림차순으로 field값을 얻어오고,
02. 그 결과 중, 순서가 10~20 사이에 값들을 얻어온다.
예제2)
SQL 문
select * from
(select seqno , title, name, memo, row_number() over(order by seqno desc, id)
as num
from tb where userid='samsik' )
where num between startROW and (endROW-1)
3. 참고
1) row_number() 는 SQL 표준이라고 한다.
rownum 은 표준이 아니라고 나와있는데, 아래 참고하자.
* Comparison of different SQL implementations
2) Larget Result Set 이 있을때, ROW_NUMBER()사용이 그리 빠르지 않다는 것
* 여기 참조