Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Мога ли да разгранича няколко реда в една колона със запетая?

Ето решение, което работи в 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

Справка:

  • НЕЩО (Transact-SQL)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Нулева застой на SQL по дизайн - някакви модели на кодиране?

  2. Върнете всички файлови групи за текущата база данни в SQL Server

  3. EXEC sp_executesql с множество параметри

  4. Използване на променлива в SQL израза LIKE

  5. Изграждане на модел за машинно обучение със SQL Server, ML.NET и C#