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

списък, разделен със запетая, като единичен низ, T-SQL

Можете да използвате FOR XML PATH и STUFF за да свържете множеството редове в един ред:

select distinct t1.id,
  STUFF(
         (SELECT ', ' + convert(varchar(10), t2.date, 120)
          FROM yourtable t2
          where t1.id = t2.id
          FOR XML PATH (''))
          , 1, 1, '')  AS date
from yourtable t1;

Вижте SQL Fiddle с демонстрация




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да намеря текущото ниво на транзакция?

  2. Как да преименувате база данни на SQL сървър с помощта на T-SQL

  3. sql изявление за използване с променлива

  4. 3 начина да получите името на месеца от дата в SQL Server (T-SQL)

  5. Има ли разлика между SQL Server Express (2012) и LocalDB?