使用SQL中的stuff()将多个值连接到单个列中(

问题描述:

ID | NAME 
----|-------- 
1 |Ann 
2 |Jake 
1 |Julie 
3 |Paul 
2 |Shane 
4 |Kumi 

我想用下面的stuff()连接值。单个值不应受stuff()函数的影响。使用SQL中的stuff()将多个值连接到单个列中(

ID | NAME 
----|-------- 
1 |Ann,Julie 
2 |Jake,Shane 
3 |Paul 
4 |Kumi 

如何做到这一点?

+1

也请添加你尝试过什么,你都面临 – ughai

+0

的问题你有没有去谷歌上查询? – manetsus

CREATE TABLE #A 
(ID INT, NAME VARCHAR(10)) 
INSERT INTO #A VALUES 
(1,'ANN'), 
(2,'JAKE'), 
(1,'JULIE'), 
(3,'PAUL'), 
(2,'SHANE'), 
(4,'KUMI') 

SELECT DISTINCT ID , 
STUFF((SELECT ','+NAME 
FROM #A T1 
WHERE T1.ID=T2.ID 
FOR XML PATH('')),1,1,'') FROM #A T2 

STUFF没有做串联,其对XML这确实this.Stuff只替换值按选择

select id, 
stuff((select ','+name from #t1 t2 where t1.id=t2.id for xml path('')),1,1,'') 
from #t1 t1 
group by id