sql >> データベース >  >> RDS >> Sqlserver

複数の行を1つの列にカンマで区切ることはできますか?

    SQLServer2005以降で機能するソリューションは次のとおりです。

    SELECT t.TicketID,
           STUFF(ISNULL((SELECT ', ' + x.Person
                    FROM @Tickets x
                   WHERE x.TicketID = t.TicketID
                GROUP BY x.Person
                 FOR XML PATH (''), TYPE).value('.','VARCHAR(max)'), ''), 1, 2, '') [No Preceeding Comma],
           ISNULL((SELECT ', ' + x.Person
                    FROM @Tickets x
                   WHERE x.TicketID = t.TicketID
                GROUP BY x.Person
                 FOR XML PATH (''), TYPE).value('.','VARCHAR(max)'), '') [Preceeding Comma If Not Empty]
      FROM @Tickets t
    GROUP BY t.TicketID
    

    参照:

    • STUFF(Transact-SQL)


    1. レコードメンテナンスの概要

    2. CAST()を使用してSQLServerで日付形式を変換する方法

    3. MySQL:ランダムエントリを選択しますが、特定のエントリに重みを付けます

    4. Postgresのパスワード認証が失敗する