- 전체
- Sample DB
- database modeling
- [표준 SQL] Standard SQL
- G-SQL
- 10-Min
- ORACLE
- MS SQLserver
- MySQL
- SQLite
- postgreSQL
- 데이터아키텍처전문가 - 국가공인자격
- 데이터 분석 전문가 [ADP]
- [국가공인] SQL 개발자/전문가
- NoSQL
- hadoop
- hadoop eco system
- big data (빅데이터)
- stat(통계) R 언어
- XML DB & XQuery
- spark
- DataBase Tool
- 데이터분석 & 데이터사이언스
- Engineer Quality Management
- [기계학습] machine learning
- 데이터 수집 및 전처리
- 국가기술자격 빅데이터분석기사
- 암호화폐 (비트코인, cryptocurrency, bitcoin)
[Oracle|오라클] 여러 행(ROW)을 하나의 컬럼(COLUMN)으로 합치기 (WM_CONCAT)
2020.06.14 16:54
[Oracle|오라클] 여러 행(ROW)을 하나의 컬럼(COLUMN)으로 합치기 (WM_CONCAT)
WM_CONCAT 함수를 이용하여 손쉽게 여러행의 데이터를 한 컬럼으로 합칠 수 있다.
□ 방법 1. (WM_CONCAT 이용)
--가상 테이블 WITH TEST_TABLE AS ( SELECT '고구려' COUNTRY, '1대' ST, '동명성왕' KING_NM FROM DUAL UNION ALL SELECT '고구려' COUNTRY, '3대' ST, '대무신왕' KING_NM FROM DUAL UNION ALL SELECT '백제' COUNTRY, '1대' ST, '온조왕' KING_NM FROM DUAL UNION ALL SELECT '고구려' COUNTRY, '2대' ST, '유리왕' KING_NM FROM DUAL UNION ALL SELECT '백제' COUNTRY, '3대' ST, '기루왕' KING_NM FROM DUAL UNION ALL SELECT '신라' COUNTRY, '1대' ST, '남해왕' KING_NM FROM DUAL UNION ALL SELECT '신라' COUNTRY, '1대' ST, '박혁거세' KING_NM FROM DUAL UNION ALL SELECT '백제' COUNTRY, '2대' ST, '다루왕' KING_NM FROM DUAL UNION ALL SELECT '신라' COUNTRY, '1대' ST, '유리이사금' KING_NM FROM DUAL ) --조회 쿼리 SELECT COUNTRY , WM_CONCAT(KING_NM) KING_NM FROM TEST_TABLE GROUP BY COUNTRY
- WM_CONCAT 함수를 이용하여 여러행의 값을 하나의 컬럼으로 합칠 수 있다.
값의 구분은 쉼표(,)로 구분되어 합쳐진다.
□ 방법 2. (XMLAGG, XMLELEMENT 이용)
--가상 테이블 WITH TEST_TABLE AS ( SELECT '고구려' COUNTRY, '1대' ST, '동명성왕' KING_NM FROM DUAL UNION ALL SELECT '고구려' COUNTRY, '3대' ST, '대무신왕' KING_NM FROM DUAL UNION ALL SELECT '백제' COUNTRY, '1대' ST, '온조왕' KING_NM FROM DUAL UNION ALL SELECT '고구려' COUNTRY, '2대' ST, '유리왕' KING_NM FROM DUAL UNION ALL SELECT '백제' COUNTRY, '3대' ST, '기루왕' KING_NM FROM DUAL UNION ALL SELECT '신라' COUNTRY, '2대' ST, '남해왕' KING_NM FROM DUAL UNION ALL SELECT '신라' COUNTRY, '1대' ST, '박혁거세' KING_NM FROM DUAL UNION ALL SELECT '백제' COUNTRY, '2대' ST, '다루왕' KING_NM FROM DUAL UNION ALL SELECT '신라' COUNTRY, '3대' ST, '유리이사금' KING_NM FROM DUAL ) --조회 쿼리 SELECT COUNTRY , SUBSTR( XMLAGG( XMLELEMENT(COL ,',', KING_NM) ORDER BY ST).EXTRACT('//text()' ).GETSTRINGVAL() , 2) KING_NM FROM TEST_TABLE GROUP BY COUNTRY
- 첫번째 방법에 비하여 조금 복잡해 보이나 합쳐지는 값의 구분자를 쉼표(,) 뿐만 아니라 사용자가 직접 값의 구분자를 지정 할 수 있다. 또한 해당 값의 정렬을 지정 가능 하다.
□ 결과
○ 조회 전 (TEST_TABLE)

○ 조회 후

[출처] https://gent.tistory.com/15
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 공지 | 오라클 기본 샘플 데이터베이스 | 졸리운_곰 | 2014.01.02 | 86873 |
| 공지 | [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE | 가을의 곰을... | 2013.02.10 | 79171 |
| 공지 | [G_SQL] Sample Database | 가을의 곰을... | 2012.05.20 | 95909 |

