여러 줄의 데이터를 한 컬럼 안에 담고 싶을 때 사용 됩니다
예를 들어 회의정보MST 테이블이 있고, 회의 참석자 정보 테이블이 있습니다
그런데 회의 참석자 정보 테이블에는 한 레코드에 한 사람정보가 담겨 있을 경우
이 참석자 정보들을 한 컬럼에 구분자로 하여 모두 보여 주고 싶을 때 사용 됩니다
WITH T_TABLE01 AS
(SELECT '1' COL1, '가' COL2
UNION
SELECT '1' COL1, '나' COL2
UNION
SELECT '2' COL1, '다' COL2
)
SELECT A.COL1
, (SELECT ', ' + A1.COL2
FROM T_TABLE01 A1
WHERE (A1.COL1 = A.COL1)
FOR XML PATH ('')) COL2_1
, STUFF((SELECT ', ' + A1.COL2
FROM T_TABLE01 A1
WHERE (A1.COL1 = A.COL1)
FOR XML PATH ('')),1,1,'') COL2_2
FROM T_TABLE01 A
GROUP BY A.COL1
결과 - 앞의 콤마를 없애기 위해 STUFF 함수가 사용 되었습니다
반응형
'프로그래밍 > DB' 카테고리의 다른 글
[MS-SQL] 특정 월의 마지막 날짜 구하는 두가지 방법 (0) | 2017.09.07 |
---|---|
[MS-SQL] 정규식을 이용한 특수문자 포함 된 데이터 조회 방법 (0) | 2017.09.07 |
[MS-SQL] 컬럼명이 포함 된 테이블 찾는 방법 (0) | 2017.09.01 |
[MS-SQL] 프로시저 커서(CURSOR) 사용 법 (0) | 2017.08.31 |
[MS-SQL] 순서 매기기 - ROW_NUMBER() OVER (0) | 2017.08.29 |