1. ROWNUM 키워드 이용하는 방법
- 조회된 순서되로 순번을 매긴다.
SELECT ROWNUM
, a.*
FROM emp a
- ORDER BY 를 사용하면 순번이 뒤섞이므로 정렬된 서브쿼리 결과에 ROWNUM 을 매겨야 한다.
SELECT ROWNUM
, x.*
FROM ( SELECT a.*
FROM emp a
ORDER BY a.ename
) x
2. ROW_NUMBER() 함수를 사용하는 방법
- ORDER BY 된 결과에 순번을 매길때에는 ROWNUM 보다 ROW_NUMBER() 함수가 더 편하다.
SELECT ROW_NUMBER() OVER(ORDER BY a.job, a.ename) row_num
, a.*
FROM emp a
ORDER BY a.job, a.ename
- 그룹별(PARTITION)로 순번을 따로 부여할 수 있다.
SELECT ROW_NUMBER() OVER(PARTITION BY a.job ORDER BY a.job, a.ename) row_num
, a.*
FROM emp a
ORDER BY a.job, a.ename
사용 예제
1. ROWNUM 예제
2. ROW_NUMBER() 예제