sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo concatenar varias filas?

Para SQL Server 2005+, use la función STUFF y 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

Pero le faltan detalles sobre dónde están los datos que desea convertir en una cadena delimitada por comas y cómo se relaciona con un registro de empleado...