본문 바로가기

DBMS/SQL Server

[SQL Server] 문자열 합치기

 

 USE tempdb

 GO

 

 -- 테스트 테이블 생성

 CREATE TABLE dbo.HOBBY_TBL (

    USERID  VARCHAR(25)

  , HOBBY   VARCHAR(30)

 )

 GO

 

 -- 테스트 데이터 입력

 INSERT INTO dbo.HOBBY_TBL (USERID, HOBBY)

 VALUES ('ABC', '축구')

      , ('ABC', '독서')

      , ('ABC', '게임')

      , ('APPLE', '등산')

      , ('APPLE', '농구')

 GO

 

 -- 테이블 조회

 SELECT * FROM dbo.HOBBY_TBL

 GO

 

 -- 문자열 합치기 (DISTINCT 사용)

 SELECT DISTINCT USERID

      , STUFF (( SELECT ',' + HOBBY

                 FROM dbo.HOBBY_TBL

                 WHERE USERID = A.USERID

                 FOR XML PATH('')

                ), 1, 1, '') AS HOBBY

 FROM dbo.HOBBY_TBL AS A

 GO

 

 -- 문자열 합치기 (GROUP BY 사용)

 SELECT USERID

     , STUFF (( SELECT ',' + HOBBY

                FROM dbo.HOBBY_TBL

                WHERE USERID = A.USERID

                FOR XML PATH('')

               ), 1, 1, '') AS HOBBY

 FROM dbo.HOBBY_TBL AS A

 GROUP BY USERID

 GO