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

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() 예제




 

 

 

 

 

댓글

Designed by JB FACTORY