DB/Oracle
ORACLE 오라클 rownum을 이용하여 페이징 처리하기
개발로짜
2014. 8. 15. 18:21
2014/08/15 - [DB/MySQL] - MySQL LIMIT를 사용하여 페이징쿼리를 동작시켜보자
2014/08/15 - [DB/MSSQL] - MS-SQL 2005 이상 row_number() over(order by 정렬조건) 을 이용하여 페이징쿼리를 동작시켜보자
이번에는 ORACLE의 rownum 을 이용하여 페이징 처리를 다루도록 보도록 하자
1. create table 생성
CREATE TABLE PAGE_TABLE ( "IDX" NUMBER, "TITLE" VARCHAR2(100), "CONTENT" VARCHAR2(200) )
2. 가상의 데이터 IMPORT
그렇다면 이제 페이징 테스트를 해보도록 하겠음.
각 페이징 처리를 할때마다 20개씩 출력해보도록 하겠다.
쿼리는 다음과 같다.
-- 1페이지 select * from (SELECT * FROM ( SELECT rownum rnum,idx,title,content FROM page_table ) pagetable where rnum <= 20 ) where rnum >= 1; -- 2페이지 select * from (SELECT * FROM ( SELECT rownum rnum,idx,title,content FROM page_table ) pagetable where rnum <= 40 ) where rnum >= 21; . . . -- 5페이지 select * from (SELECT * FROM ( SELECT rownum rnum,idx,title,content FROM page_table ) pagetable where rnum <= 100 ) where rnum >= 81;
3, 실 행 하 기
1페이지
2페이지
5페이지
ROWNUM
쉽게 생각해서 테이블 데이터아 rownum이라는 컬럼을 추가해서 1부터 출력된 테이블의 갯수를
순차적으로 증가 시켜주는거라고 생각하면 될것이다.
도움이 되셨다면 공감클릭! 궁금하신점은 댓글!!