[MSSQL] STUFF와 FOR XML PATH를 활용한 문자열 합치기
- DB/MSSQL
- 2018. 4. 9.
MSSQL에서 문자열을 합치는 방법은 여러가지가 있습니다. 이번 포스팅에서는 테이블을 Select 해온 결과값을 문자열로 쉽고 간편하게 만들 수 있는 방법을 소개해 드리도록 하겠습니다.
STUFF, FOR XML
STUFF : 지정된 문자열의 시작위치와 크기를 지정하여 원하는 문자로 치환하는 함수입니다.
사용법
STUFF('[문자열]','[시작위치]','[크기]','[치환문자]')
FOR XML : 쿼리의 실행 결과를 XML형식으로 만들어줍니다.
모드
1. RAW : 행 집합의 각 행마다 SELECT문으로 반환되는 단일 행(ROW)를 생성합니다.
2. AUTO : SELECT문의 결과 XML에서 중첩된 구조를 생성합니다.
3. EXPLICIT : XML모양을 자신의 의지대로 특성과 요소를 혼합할 수 있습니다.
4. PATH : EXPLICIT 모드보다 좀 더 간편하게 XML형태를 가공할 수 있습니다.
문자열 합치기 예제
TEST_TABLE안에 들어있는 데이터들. 이 데이터들을 합쳐서 출력해보겠습니다.
1. 문자열 합치기
SELECT DISTINCT
STUFF((
SELECT ',' + Name
FROM TEST_TABLE
FOR XML PATH('')
),1,1,'') AS Name
FROM TEST_TABLE AS TEST
2. Seq번호로 그룹지어 출력하기
SELECT DISTINCT Seq,
STUFF((
SELECT ',' + Name
FROM TEST_TABLE
WHERE Seq = TEST.Seq
FOR XML PATH('')
),1,1,'') AS Name
FROM TEST_TABLE AS TEST
'DB > MSSQL' 카테고리의 다른 글
[MSSQL] 동적 피벗 테이블 만들기 (0) | 2018.04.10 |
---|---|
[MSSQL] 문자열 구분자 추가 (QUOTENAME) 함수 사용법 & 예제 (0) | 2018.04.06 |
[MSSQL] BETWEEN절 사용법 & 예제 (0) | 2018.04.05 |
[MSSQL] IN절 사용법 & 예제 (0) | 2018.04.04 |