使用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
如何做到这一点?
答
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
也请添加你尝试过什么,你都面临 – ughai
的问题你有没有去谷歌上查询? – manetsus