sql >> Databasteknik >  >> RDS >> Sqlserver

Kan jag kommaavgränsa flera rader i en kolumn?

Här är en lösning som fungerar i SQL Server 2005+:

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

Referens:

  • STUFF (Transact-SQL)


  1. Inloggningsflöde i R12.2 och grundläggande felsökning

  2. Dominoernas hemligheter, eller en dominospeldatamodell

  3. SQL CREATE TABLE Syntax – Listad av DBMS

  4. SQL-operatörer