오라클 쿼리에서 정렬순서의 번호를 매겨서 특정 번호를 가져 오는 방법이 있나요? 0 1 1,106

by grape111 [SQL Query] 오라클 rownum query [2020.07.01 14:14:30]


안녕하세요

오라클 쿼리에서 정렬순서의 번호를 매겨서 특정 번호를 가져 오는 방법이 있나요?

 

예를 들어 

 

select * from aaa  a where  a.type='TYPE_A;

의 값이  500 만행 정도됩니다. 

하려고 하는 작업은 

 

 해당 500만 행을 자바jdbc를 이용한 main 함수에서 resultset으로 가져와서 

 

다른 오라클database에 전부 insert 시키는 작업을 하려고 하는데요..

내용이 많아서 

select * from aaa  a where  a.type='TYPE_A order by a.col2 desc

로 order by 추가해서

1-10000행

10001-20000행

..

..

499001- 5000000행

이렇게 500번 해서 가져오려고 합니다.

그런데 행을 번호매기는 것과 해당 번호범위를 설정하는 쿼리 문법이 어떻게 되는지 궁금합니다.

 

혹시 알고 계시면 답변부탁드립니다.

by 마농 [2020.07.01 15:19:04]

ROW_NUMBER 를 이용하시면 됩니다.
다만, 정렬기준 항목이 중복 가능 항목이라면? 원치 않는 결과를 초래할 수 있습니다.
1페이지에 나왔던 자료가 2페이지에 다시 나오고, 1페이지에 안나왔던 자료가 누락되는 현상 발생.
유일키 항목을 정렬기준에 추가하세요.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입