sql >> Databasteknik >  >> RDS >> Sqlserver

Hur sammanfogar man flera rader?

För SQL Server 2005+, använd funktionen STUFF och 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

Men du saknar detaljer om var den data du vill göra om till en kommaavgränsad sträng och hur den relaterar till en anställds post...



  1. Hur kör man en fråga som är lagrad i en tabellkolumn MySQL?

  2. Ta bort dubbletter av rader och lämna endast den äldsta raden?

  3. XAMPP MySQL - Inställning ft_min_word_len

  4. Hur lagrar jag uuid som nummer?