복붙노트

[SQL] 쉼표로 구분 한 값과 복수의 열 [중복]

SQL

쉼표로 구분 한 값과 복수의 열 [중복]

나는 쉼표로 구분 된 값으로 데이터를 반환 할 SQL 서버에서 테이블 반환 함수를 만들려고합니다.

예를 들어 테이블 : TBL

ID | Value
---+-------
 1 | 100
 1 | 200
 1 | 300     
 1 | 400 

나는 기능 FUNC1 (값)를 사용하여 쿼리를 실행할 때 지금

SELECT Func1(Value) 
FROM tbl 
WHERE ID = 1

내가 원하는 것을 출력은 다음과 같습니다 100200300400

해결법

  1. ==============================

    1.테스트 데이터

    테스트 데이터

    DECLARE @Table1 TABLE(ID INT, Value INT)
    INSERT INTO @Table1 VALUES (1,100),(1,200),(1,300),(1,400)
    

    질문

    SELECT  ID
           ,STUFF((SELECT ', ' + CAST(Value AS VARCHAR(10)) [text()]
             FROM @Table1 
             WHERE ID = t.ID
             FOR XML PATH(''), TYPE)
            .value('.','NVARCHAR(MAX)'),1,2,' ') List_Output
    FROM @Table1 t
    GROUP BY ID
    

    설정 결과

    ╔════╦═════════════════════╗
    ║ ID ║     List_Output     ║
    ╠════╬═════════════════════╣
    ║  1 ║  100, 200, 300, 400 ║
    ╚════╩═════════════════════╝
    
  2. from https://stackoverflow.com/questions/21760969/multiple-rows-to-one-comma-separated-value by cc-by-sa and MIT license