본문 바로가기
SQL/Oracle

[Oracle] ROWNUM을 이용해 LIMIT 구현(제한된 개수의 데이터 가져오기)

by jane.dev 2021. 9. 23.
반응형

조회하려는 테이블에서 데이터를 10개씩 가져오기

예시: board_tbl 테이블

MySQL에서의 LIMIT 구문

/* 첫번째 데이터에서 10개 가져오기 */
SELECT * FROM board_tbl LIMIT 0, 10;

/* 열한번째 데이터에서 10개 가져오기 */
SELECT * FROM board_tbl LIMIT (0 + 10), 10;

...
SELECT * FROM 테이블명 LIMIT 가져오려는 데이터 순번 -1, 가져오려는 데이터 개수;

 

Oracle에서의 ROWNUM 사용

/* 첫번째 데이터에서 10개 가져오기 */
SELECT * 
    FROM (
        SELECT ROWNUM AS rn, bt.*
        FROM (SELECT * FROM board_tbl) bt 
        WHERE ROWNUM <= 10
         ) 
WHERE rn > 0;

/* 열한번째 데이터에서 10개 가져오기 */
SELECT * 
    FROM (
        SELECT ROWNUM AS rn, bt.*
        FROM (SELECT * FROM board_tbl) bt 
        WHERE ROWNUM <= (10 + 10)
         ) 
WHERE rn > 10;

...
SELECT *
    FROM (
        SELECT ROWNUM AS ROWNUM 별칭, 조회할 쿼리문 별칭.*
        FROM (조회할 쿼리문) 조회할 쿼리문 별칭
        WHERE ROWNUM < 조회할 데이터 순번 중 가장 큰 값
         )
WHERE ROWNUM 별칭 > 조회할 데이터 순번 중 가장 작은 값 - 1;