본문 바로가기

Oracle Database

[ORACLE] ROWNUM 행제한

 

//1부터 5까지 뽑아낸다
SELECT * FROM NOTICE WHERE ROWNUM BETWEEN 1 AND 5;

/*하지만 BETWEEN 2 AND 6 이런건 안된다.
왜냐하면, WHERE 절이 실행될때 만들어 지는게 ROWNUM인데 
ROWNUM은 ++가 안되기 때문에 계속 ROWNUM 1과 비교하려한다.*/

//이런식으로 해야한다. 서브쿼리를 작성해준다. 서브쿼리는 본 쿼리보다 먼저 실행된다.
SELECT * FROM (SELECT ROWNUM NUM, NOTICE.* FROM NOTICE) WHERE NUM BETWEEN 1 AND 5;
SELECT * FROM (SELECT ROWNUM NUM, NOTICE.* FROM NOTICE) WHERE NUM BETWEEN 6 AND 10;