본문 바로가기
Oracle/SQL

여러개의 로우를 하나의 컬럼으로 (10g 이하도 사용 가능)

by 폴리글랏 2020. 10. 5.

오라클 11g부터는 XMLAGG같은 함수가 존재한다.

 

하지만 10g같은 경우는 해당 기능이 없거나 혹은 사용하기 힘들기 때문에

 

아래와 같은 코드를 써서 여러개의 로우를 하나의 컬럼으로 합칠 수 있다.

 

SELECT MAX(SUBSTR(SYS_CONNECT_BY_PATH([컬럼], ', '), 2)) 
  FROM (SELECT ROWNUM RN
                    , [컬럼] 
          FROM [테이블] 
       ) 
START WITH RN = 1 
CONNECT BY PRIOR RN = RN -1;

 

댓글