[MSSQL] Row Merge, 여러 Row 합치기
- 여러개의 Row로 된 데이터를 각 키마다 묶어 하나로 보일때 사용
1. 기초자료
- CREATE TABLE #TEMP1
- (
- Code INT,
- VALUE VARCHAR(100)
- )
- INSERT INTO #TEMP1 (Code,Value) VALUES ( 1, '나는' )
- INSERT INTO #TEMP1 (Code,Value) VALUES ( 1, '프로그램이' )
- INSERT INTO #TEMP1 (Code,Value) VALUES ( 1, '좋다' )
- INSERT INTO #TEMP1 (Code,Value) VALUES ( 2, '너도' )
- INSERT INTO #TEMP1 (Code,Value) VALUES ( 2, '프로그램이' )
- INSERT INTO #TEMP1 (Code,Value) VALUES ( 2, '좋냐?' )
2. FOR XML 사용
- --- element 가 붙음 ---
- SELECT Value
- FROM #TEMP1
- FOR XML PATH('')
- --- element 가 안 붙음 결과 (컬럼을 변형하여 명을 지정안함) ---
- SELECT Value + ' '
- FROM #TEMP1
- FOR XML PATH('')
< element 가 붙음 결과 >
< element 가 안 붙음 결과 (컬럼을 변형하여 명을 지정안함)>
3. Column SubQueyr 이용
- SELECT Code,(
- SELECT Value + ' '
- FROM #TEMP1
- WHERE Code = A.Code
- FOR XML PATH('')
- )
- FROM #TEMP1 A
4. DISTINCT 사용
- SELECT DISTINCT Code,(
- SELECT Value + ' '
- FROM #TEMP1
- WHERE Code = A.Code
- FOR XML PATH('')
- )
- FROM #TEMP1 A
5. 끝의 스페이스 문자 ' '를 없애기 위해 Stuff 또는 SUBSTRING 등 문자열 함수 사용