[DATABASE/ORACLE] XMLAGG, XMLELEMENT 함수를 사용해 여러 행의 데이터를 한 컬럼에 결합하기
Database/Oracle 2015. 5. 11. 09:00728x90
반응형
728x170
■ XMLAGG, XMLELEMENT 함수를 사용해 여러 행의 데이터를 한 컬럼에 결합하는 방법을 보여준다.
▶ 예제 코드 (SQL)
WITH SOURCE_TABLE AS
(
SELECT '고구려' COUNTRY, '1대' ST, '동명성왕' KING_NAME FROM DUAL UNION ALL
SELECT '고구려' COUNTRY, '3대' ST, '대무신왕' KING_NAME FROM DUAL UNION ALL
SELECT '백제' COUNTRY, '1대' ST, '온조왕' KING_NAME FROM DUAL UNION ALL
SELECT '고구려' COUNTRY, '2대' ST, '유리왕' KING_NAME FROM DUAL UNION ALL
SELECT '백제' COUNTRY, '3대' ST, '기루왕' KING_NAME FROM DUAL UNION ALL
SELECT '신라' COUNTRY, '1대' ST, '남해왕' KING_NAME FROM DUAL UNION ALL
SELECT '신라' COUNTRY, '1대' ST, '박혁거세' KING_NAME FROM DUAL UNION ALL
SELECT '백제' COUNTRY, '2대' ST, '다루왕' KING_NAME FROM DUAL UNION ALL
SELECT '신라' COUNTRY, '1대' ST, '유리이사금' KING_NAME FROM DUAL
)
SELECT
COUNTRY
,SUBSTR(XMLAGG(XMLELEMENT(COL ,',', KING_NAME) ORDER BY ST).EXTRACT('//text()').GETSTRINGVAL(), 2) KING_NAME
FROM SOURCE_TABLE
GROUP BY COUNTRY;
/*
COUNTRY KING_NAME
------- --------------------------
고구려 동명성왕,유리왕,대무신왕
백제 온조왕,다루왕,기루왕
신라 남해왕,유리이사금,박혁거세
*/
728x90
반응형
그리드형(광고전용)
'Database > Oracle' 카테고리의 다른 글
[DATABASE/ORACLE] 테이블 리스트 조회하기 (0) | 2015.05.11 |
---|---|
[DATABASE/ORACLE] 암시적 커서 사용하기 (0) | 2015.05.11 |
[DATABASE/ORACLE] 구분자를 사용해 문자열 분리하기 (0) | 2015.05.11 |
[DATABASE/ORACLE] 구분자를 사용해 문자열 분리하기 (0) | 2015.05.11 |
[DATABASE/ORACLE] 구분자를 사용해 문자열 분리하기 (0) | 2015.05.11 |
[DATABASE/ORACLE] WM_CONCAT 함수 : 사용해 여러 행의 데이터를 한 컬럼에 결합하기 (0) | 2015.05.11 |
[DATABASE/ORACLE] INSTR 함수 사용하기 (0) | 2015.05.11 |
[DATABASE/ORACLE] 사용자 정의 함수를 사용해 숫자 문자열 여부 구하기 (0) | 2015.05.11 |
[DATABASE/ORACLE] TRANSLATE 함수 : 숫자 문자열 여부 구하기 (0) | 2015.05.11 |
[DATABASE/ORACLE] 정규식을 사용해 숫자 문자열 여부 구하기 (0) | 2015.05.11 |
댓글을 달아 주세요