sql >> Database teknologi >  >> RDS >> Sqlserver

Kan jeg kommaafgrænse flere rækker i én kolonne?

Her er en løsning, der virker 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

Reference:

  • STUFF (Transact-SQL)


  1. Sådan opretter du forbindelse til MySQL fra kommandolinjen

  2. Sådan løses ORA-28000 kontoen er låst

  3. Forskellen mellem lokale og globale midlertidige tabeller i SQL Server

  4. Kend relationer mellem alle tabellerne i databasen i SQL Server