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

Jak zřetězit více řádků?

Pro SQL Server 2005+ použijte funkci STUFF a FOR XML PATH:

WITH summary_cte AS (
   SELECT Employee.Id, SUM(Pay) as Salary
     FROM Employee
     JOIN PayCheck ON PayCheck.EmployeeId = Employee.Id
 GROUP BY Employee.Id)
SELECT sc.id, 
       sc.salary,
       STUFF((SELECT ','+ yt.data
                FROM your_table yt
               WHERE yt.id = sc.id
            GROUP BY yt.data
             FOR XML PATH(''), TYPE).value('.','VARCHAR(max)'), 1, 1, '')
  FROM summary_cte sc

Chybí vám však podrobnosti o tom, kde jsou data, která chcete převést na řetězec oddělený čárkou, a jak souvisí se záznamem zaměstnance...



  1. Jak počítat slova v MySQL / náhradě regulárních výrazů?

  2. Replikace z MySQL na MS SQL

  3. SQL seskupení podle měsíce a roku

  4. Nástroj pro překlad Oracle PL/SQL do Postgresql PL/pgSQL