MSSQL 세로행 결과값을 한 ROW에 합치기 (STUFF 사용)


MSSQL 세로행 결과값을 한 ROW에 합치기 (STUFF 사용)

다음과 같은 데이터가 담긴 #TEMP 라는 임시테이블이 있을 때, NUM이 같은 NAME끼리 묶어 콤마(,)으로 합치기 위해서는 MSSQL에서 STUFF를 통해 간단히 해결가능합니다. 원하는 결과부터 보자면 1번 NUM에서는 KIM과 LEE가 콤마(,)으로 한 행으로 표시되도록 하려고 합니다. 여러가지 방법이 있겠지만 STUFF를 이용하여 간단한 쿼리를 작성해보도록 하겠습니다. SELECT X.NUM, X.NAME FROM ( SELECT A.NUM , STUFF((SELECT ', ' + NAME FROM #TEMP WHERE NUM=A.NUM FOR XML PATH('')),1,1,'') AS NAME FROM #TEMP AS A ) X GROUP BY X.NUM, X.NAME 줄맞춤이 엉망이지만 쿼리에서는 'STUFF'와 FOR XML PATH 부분만 눈여겨 보면 되겠습니다. 하나의 행으로 합치기 위한 문자열 NAME을 #TEMP 테이블끼리 NUM 컬럼으로 조인했으며 STUFF...


#MSSQL #SQLSERVER #SSMS #STUFF

원문링크 : MSSQL 세로행 결과값을 한 ROW에 합치기 (STUFF 사용)