총 12개의 데이터를 가지고 있느 테이블이 있다고 가정합니다.
listnumber = 5 // 한 페이지 당 보여주는 게시물의 수
page_no = 1 // 페이지 번호
select *
from (select A.*,FLOOR((ROWNUM - 1)/listnumber + 1) page, rownum
from (
select board_title from board order by board_no desc
) A
)
where page = page_no;
우선 FLOOR함수는 값의 내림값을 표현해주는 함수입니다.
SQL> select FLOOR(7.4) from dual;
SQL> 7
ROWNUM은 테이블이 가지고 있는 행의 번호를 순서대로 반환해줍니다.
SQL> select rownum from 테이블명; //3개의 데이터를 가지고 있는 테이블이라 가정
SQL> ROWNUM
SQL> --------
SQL> 1
SQL> 2
SQL> 3
결국 총 데이터가 12개이면 rowum 은 1부터 12까지가 되죠.
FLOOR((ROWNUM - 1)/listnumber + 1) page
그리하여 rownum은 1부터 12까지 대입을 하게되고 수식에 의해서 page 는 3의 값을 가지게되고
값 페이지값에 해당되는 rownum 값을 알게 되겠죠.
page rownum
------- -----------
1 1
1 2
1 3
1 4
1 5
2 6
2 7
2 8
2 9
2 10
3 11
3 12
그럼
where page = page_no;
page 에 jsp또는 서블릿에서 넘어오는 페이지 번호를 대입하면 페이지별 데이터를 가져오게 됩니다.
'Database > ORACLE' 카테고리의 다른 글
토드(Toad)에서 오라클 프로시져(Oracle Procedure) 실행 방법 (0) | 2013.02.07 |
---|---|
START WITH ~ CONNECT BY PRIOR 구문(계층 구조) (0) | 2013.01.31 |
[오라클,ORACLE] 쿼리 실행 시간 (0) | 2013.01.22 |
오라클 UNION 사용 시 ORDER BY 처리 (2) | 2013.01.22 |
oracle 함수(산술, 문자열, 날짜, 날짜포맷 등) (0) | 2013.01.11 |
오라클 쿼리 인덱스(ORACLE QUERY INDEX) (0) | 2012.08.14 |
다른 테이블과 JOIN하여 DELETE하기 (0) | 2012.08.14 |
오라클 내장함수 (0) | 2012.08.14 |
오라클 OUTER JOIN (0) | 2012.08.14 |
오라클 forms develope 개발 시 간단한 코드 모음 (1) | 2012.08.14 |