[Oracle 11g] group by로 그룹핑한 row들의 문자열 합치기(concat)
개발/Database2015. 7. 22. 10:16
Oracle 11g에 LISTAGG라는 function이 추가되었습니다. 이 function은 group by로 그룹핑된 문자열 row들을 하나의 컬럼으로 결합시키는 역할을 하게 됩니다. 간단하게 예를 들어보도록 하겠습니다.
DEPTNO | NAME |
1 | 김태희 |
1 | 전지현 |
2 | 성나정 |
3 | 고아라 |
위의 데이터에서 부서번호(DEPTNO)가 1인 사원들의 이름을 한번에 뽑고 싶을 경우에는 아래와 같은 쿼리를 사용하면 됩니다.
1 2 3 4 5 6 | SELECT deptno, LISTAGG( name , ',' ) within group ( order by name ) name FROM test_tb where deptno = 1 group by deptno; |
LISTAGG(결합시킬 컬럼, ROW 사이의 결합 문자) within group (해당 그룹 사이의 정렬조건)
으로 간단하게 사용할 수 있습니다
위 쿼리를 실행하면 결과값은 아래처럼 나오게 됩니다.
DEPTNO | NAME |
1 | 김태희, 전지현 |
[원문출처]http://krespo.net/195
'개발 > Database' 카테고리의 다른 글
MySQL에서 계층 적 데이터 관리하기 (0) | 2017.02.08 |
---|---|
[Oracle] start with connect by prior 사용하여 상하 관계 데이터 처리하기 (0) | 2015.07.22 |
oracle 계정 만료 관련 정리 (0) | 2015.06.15 |
[MYSQL] 5 윈도우 서비스 등록 (0) | 2015.01.28 |
windows mongodb install (0) | 2015.01.14 |