Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Czy mogę oddzielić przecinkami wiele wierszy w jednej kolumnie?

Oto rozwiązanie, które działa w 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

Odniesienie:

  • STUFF (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. Jak dostroić wydajność SQL Server, Azure SQL Database i Amazon RDS

  2. Włącz pocztę bazy danych w SQL Server (T-SQL)

  3. Popraw wydajność zapytań SQL Server na dużych tabelach

  4. Konwertuj wartość tekstową w SQL Server z UTF8 na ISO 8859-1

  5. Ograniczenie, które pozwala tylko jednej z dwóch tabel odwoływać się do tabeli podstawowej