【发布时间】:2010-06-25 20:02:32
【问题描述】:
我有以下查询,它返回所有员工的工资。这项工作完美无缺,但我需要收集额外的数据,然后将这些数据汇总到一个单元格中(参见结果集 2)。
如何将数据汇总到逗号分隔的列表中?有点像 Sum 所做的,但我需要一个字符串作为回报。
SELECT Employee.Id, SUM(Pay) as Salary
FROM Employee
INNER JOIN PayCheck ON PayCheck.EmployeeId = Employee.Id
GROUP BY Employee.Id
结果集 1
Employee.Id Salary
-----------------------------------
1 150
2 250
3 350
我需要:
结果集 2
Employee.Id Salary Data
----------------------------------------------------
1 150 One, Two, Three
2 250 Four, Five, Six
3 350 Seven
【问题讨论】:
-
How do I Create a Comma-Separated List using a SQL Query? 和 stackoverflow.com/questions/3087684/… @Martin 的可能重复项,最后一个有一个更好的例子,可以在“GROUP BY”中使用它。还有一个使用自定义 CLR 聚合的选项。
-
也许我在这里遗漏了一些东西,但是你从哪里获得额外的数据?
-
SqlServer 2017 现在有 STRING_AGG,它使用给定的分隔符将多个字符串聚合为一个。 (不允许发布重复问题的重复答案。)
标签: sql sql-server string tsql sql-server-group-concat