sql >> Databáze >  >> RDS >> Sqlserver

Mohu čárkou oddělit více řádků do jednoho sloupce?

Zde je řešení, které funguje v 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. Mýty o výkonu:Proměnné tabulky jsou vždy v paměti

  2. Jak nainstalovat MySQL pomocí phpMyAdmin na Ubuntu 12.04

  3. Datový typ záznamu založený na kurzoru s kurzorem vracejícím více hodnot v databázi Oracle

  4. Jak automatizovat nasazení databáze PostgreSQL