我的表包含两个字段等详细信息:
ID DisplayName
1 Editor
1 Reviewer
7 EIC
7 Editor
7 Reviewer
7 Editor
19 EIC
19 Editor
19 Reviewer
我想通过 DisplayName 获取独特的详细信息,例如
1 编辑、审稿人 7 EIC、编辑、审稿人
不要获取 ID 为 7 的重复值
如何组合 DisplayName 详细信息?如何编写查询?
最佳答案
在SQL-Server中,您可以通过以下方式执行此操作:
查询
SELECT id, displayname =
STUFF((SELECT DISTINCT ', ' + displayname
FROM #t b
WHERE b.id = a.id
FOR XML PATH('')), 1, 2, '')
FROM #t a
GROUP BY id
测试数据
create table #t
(
id int,
displayname nvarchar(max)
)
insert into #t values
(1 ,'Editor')
,(1 ,'Reviewer')
,(7 ,'EIC')
,(7 ,'Editor')
,(7 ,'Reviewer')
,(7 ,'Editor')
,(19,'EIC')
,(19,'Editor')
,(19,'Reviewer')
输出
id displayname
1 Editor, Reviewer
7 Editor, EIC, Reviewer
19 Editor, EIC, Reviewer
关于sql - 如何在sql中连接具有相同id的多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35172956/