假设我有一个 表employees
,如下所示:
Name Sex Role
Bob M Developer
Joe M QA
现在,我在此表中遇到重复行的问题。我会在某个时候修复它,但这不是问题。我目前需要的是查询这样一个表的东西:
Name Sex Role
Bob M Developer
Bob M Janitor
Joe M QA
Joe M CEO
并将输出以下行:
Name Role
Bob Developer, Janitor
Joe QA, CEO
如果“角色”将被拆分为单独的列或者是具有多个值的单列,这对我来说并不重要。
如果重要,请使用 SQL Server 2008。
MySQL 中的 Group_concat 在 SQL Server 中不可用,直到 SQL Server 2016。vNext 将介绍
STRING_AGG
但是它提供了等效的功能。不过,您有一些手动选项:
您当前案例的解决方案(刚刚从 SO 中获取 Brad 的答案并为您的表格定制)将是:
这些详细信息来自不同的来源:
我会尝试以下方法,但请注意,这可能会在非常大的桌子上运行相当长的时间。
我将表称为“员工”,将列称为“名称”和“角色”。