개발/MSSQL
여러 행의 데이터를 한 칼럼에 담기
devriver
2018. 1. 26. 18:04
반응형
IDX |
NAME |
1 |
A |
1 |
B |
1 |
C |
2 |
B |
2 |
D |
[ 테이블명 : TB_NAME ]
위 테이블을 아래와 같이 출력하고 싶다.
* 구분자 ,는 변경 가능.
IDX |
NAME |
1 |
A,B,C |
2 |
B,D |
SELECT
DISTINCT IDX,
STUFF
( (
SELECT ',' + NAME FROM TB_NAME A WHERE A.IDX = B.IDX
FOR XML PATH('')
),1,1,'') AS NAME
FROM TB_NAME B
STUFF(STRING,1,1,'')
- 맨 앞 문자 한개 제거
https://docs.microsoft.com/ko-kr/sql/t-sql/functions/stuff-transact-sql
STUFF 함수
STUFF ( character_expression , start , length , replaceWith_expression )
start
삭제 및 삽입 시작 위치,
0, 음수면 NULL이 반환된다.
length
삭제 할 문자 수 지정
0, 음수면 NULL이 반환된다.
replaceWith_expression
''이면 아무것도 삽입하지 않고 문자를 제거