내가 지식이 얕은 건지, 어떻게든 돌아가게는 만든다는 주먹구구식 마인드 때문인지,
Oracle DB에 입력되어 있는 순차적인 데이터의 선택적 추출은
이 방법밖에 알지 못한다..
자, 이제 그 방법에 대해 알아보자.
먼저 MySQL 에서는
# [MySQL]
SELECT a.love_id
FROM love a
LIMIT 1000, 2000;
하면, 실제 입력된 데이터의 순서에 맞추어 1000번 부터 2000번까지의 데이터가 나온다.
하지만.... 망할 ORACLE 에는 없다는 거....
어떤 분들은 'rownum으로 WHERE rownum BETWEEN 1000 AND 2000 하면 되지 않느냐??'
라고 하는데..... 잘 찾아보면, rownum 은 결과 값에 매겨지는 상대적인 값이므로,
절대적인 신뢰감이 없고, 위의 수식도 먹지 않는다.....
뭐.. 안 믿으시면 한 번 해보시라.. --;;
그럼.. 어떻게 해야할까?
우리의 친구 꼼수를 한 번 발동 시켜볼까?
* 해법 *
************************************************************************************************
# [Oracle]
1. 아래 쿼리는, 데이터가 실제적으로 들어간 순서에 맞게 rownum을 부여 하여,
그 값을 하나의 컬럼으로 출력될 수 있게 해준다.
SELECT a.rownum as rnum, a.love_id
FROM love a;
2. 1에서 만들어진 쿼리를 아래와 같이 서브쿼리화 하여, between 사용이 가능해진다.
SELECT b.love_id
FROM (SELECT a.rownum as rnum, a.love_id FROM love a) as b
WHERE b.rnum BETWEEN 1000 AND 2000;
************************************************************************************************
자, 그럼,, 저 위의 방식을 이용하여 마음껏(???) limit 인 척 해보자.
출처 : http://blackbull.tistory.com/25