Dev JS Blog

[Oracle] 행 데이터 한 열로 합치기 본문

옛날 창고/SQL

[Oracle] 행 데이터 한 열로 합치기

Dev JS 2019. 1. 7. 16:47
728x90

행 데이터 열로 합치기






여러 행으로 되어져있는 데이터를 한컬럼으로 모을수 없을까..?



EX_TABLE 에는 num 컬럼과 team 컬럼으로 데이터가 있습니다.

num 를 그룹지어서 team을 한 컬럼에 보여주려면 어떻게 해야할까요?


바로 WM_CONCAT 을 이용하면 됩니다.


1
2
3
4
5
SELECT
    num, --그룹기준
    WM_CONCAT(team) --합쳐질 컬럼
FROM EX_TABLE
GROUP BY num
cs


결과 > 



TEAM이 모두 합쳐졌습니다. 기본으로 ,(콤마) 로 구분자로 한컬럼에 합쳐졌습니다.


이방법은 제가 알기론 10g 버전까지 활용하던 방법이고

11g 이상부터는 다른 함수를 활용하시면 되겠습니다.


LISTAGG 입니다.


LISTAGG(컬럼,구분자) WITHIN GROUP(ORDER BY 합쳐진컬럼안 정렬)



1
2
3
4
SELECT
    num, --그룹기준
    LISTAGG(team, '/') WITHIN GROUP (ORDER BY team desc) AS team
FROM EX_TABLE
cs


결과 > 



WITHIN GROUP(ORDER BY team desc) 를 했때문에 TEAM 결과가 

A/B/C가 아닌 C/B/A 로 역순으로 합쳐져있습니다.






728x90

'옛날 창고 > SQL' 카테고리의 다른 글

[Oracle] sql developer를 이용한 tablespace 생성  (1) 2019.01.28
[Oracle] 오라클 설치  (0) 2019.01.27
[Oracle] ORA - 01861 에러  (0) 2019.01.05
[Oracle] lead(), lag()는 뭐지?  (0) 2018.12.26
[SQL] JOIN 에 대해서  (0) 2018.12.23
Comments