복붙노트

[SQL] 쉼표 하나의 열 값을 분리 - SQL SERVER를

SQL

쉼표 하나의 열 값을 분리 - SQL SERVER를

Customer Table
--------------
ID   Name
1   James
2   Peter
Order Table
---------------
OrderId  CustId
100     1
101     1
102     2

나는 쿼리를 작성할 수있는 방법이이 같은 반환 뭔가

ID,Name,ListofOrders
1,James,"100,101"
2,Peter,"102"

사이베이스에서 나는 함수 호출 목록을 가지고 내가 사용할 수 있지만 SQL Server의 유사한 기능을 찾을 해달라고하는

해결법

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

    1.시도하십시오 :

    시도하십시오 :

    select ID, [Name],
    (select OrderID+',' from OrderTable where CustID=ID
    group by OrderID for xml path('')) AS ListOfOrders
    From CustomerTable
    
  2. ==============================

    2.아래와 같이 사용자 정의 함수 만들기

    아래와 같이 사용자 정의 함수 만들기

    CREATE FUNCTION [dbo].[CommaSeperatedOrderIDs](@CustId INT) returns varchar(Max)
    AS  
    BEGIN   
    
    DECLARE @CommaSeperatedValues VARCHAR(MAX)
    SELECT @CommaSeperatedValues = COALESCE(@CommaSeperatedValues+',' , '') + OrderID
    FROM OrderTable WHERE CustId = @CustId
    RETURN @CommaSeperatedValues
    
    END
    

    그리고,

    select ID, [Name], ([dbo].[CommaSeperatedOrderIDs](ID)) AS ListofOrders
    From CustomerTable
    
  3. ==============================

    3.아주 간단하고 편리한 솔루션은 아래 링크를 제공.

    아주 간단하고 편리한 솔루션은 아래 링크를 제공.

    http://tejasnshah.wordpress.com/2009/02/28/sql-server-get-column-values-as-comma-seperated-list-using-xml-path-instead-of-udfs-using-sql-coalesce/

    내가 여기를 복사 할 수 있도록 링크에 기록 된 SQL 쿼리는 ... 이미지입니다.

  4. ==============================

    4.셰이크 하리스 '링크에서 자세한 내용을 추가.

    셰이크 하리스 '링크에서 자세한 내용을 추가.

    이 테이블을 감안할 때 :

    출력을 같이 얻으려면 :

    다음 SQL을 사용합니다 :

    SELECT field1,
        Substring(convert(varchar(100),
        (
        SELECT (', ' + field2)
            FROM #test t2
            WHERE t1.field1 = t2.field1
            ORDER BY field1, field2
        FOR XML PATH( '' )
                        )), 3, 1000 )
    FROM #test t1
    GROUP BY field1
    

    WIDEMEMO 필드가 표시 될 수 있도록 내가 문자열로 변환 기능을 추가 (SQL 서버)

  5. from https://stackoverflow.com/questions/12435284/comma-separated-values-in-one-column-sql-server by cc-by-sa and MIT license