sql >> Database >  >> RDS >> Sqlserver

Kan ik meerdere rijen door komma's in één kolom scheiden?

Hier is een oplossing die werkt in 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

Referentie:

  • STUFF (Transact-SQL)


  1. Een database maken in SQLite

  2. Spaarzame kolommen in SQL Server:impact op tijd en ruimte

  3. Hoe te selecteren uit MySQL waar Tabelnaam Variabel is

  4. Geeft GETUTCDATE() dezelfde waarde terug als deze twee keer in dezelfde instructie wordt gebruikt?