본문으로 바로가기

[Oracle]오라클 조회 순번매기기(ROWNUM,ROW_NUMBER)

category DB\SQL 2019. 2. 19. 10:37

조회한 결과에 순번을 매기는 방법은 ROWNUM과 ROW_NUMBER() OVER() 를 사용하여 만들 수 있다.


테스트 테이블

COUNTRIES



ROWNUM


조회된 결과에 순서대로 순번을 붙여준다.

SELECT ROWNUM, A.* FROM COUNTRIES A;
cs

정렬을하면 순번이 뒤바뀌므로 ORDER BY가 필요하면 아래ROW_NUMBER 구문을 사용하거나 서브쿼리로 빼서 사용가능하다.

SELECT ROWNUM, A.* FROM (SELECT * FROM COUNTRIES ORDER BY REGION_ID) A;
cs



ROW_NUMBER() OVER(ORDER BY 정렬컬럼1,..)


컬럼을 정렬한 뒤 순번을 매겨준다.

SELECT ROW_NUMBER() OVER(ORDER BY A.REGION_ID)AS SEQ,A.* FROM COUNTRIES A;
cs



ROW_NUMBER() OVER(PARTITION BY 쪼갤컬럼1,.. ORDER BY 정렬컬럼1,..)

컬럼을 파티션별로 순번을 따로 매겨준다.

SELECT ROW_NUMBER() OVER(PARTITION BY A.REGION_ID ORDER BY A.COUNTRY_ID)AS SEQ,A.* FROM COUNTRIES A;
cs


REGION_ID별로 순번이 따로 매겨진것을 확인 할 수 있다.