我有下表:
number word
====== ====
1 AAA
2 BBB
2 CCCC
4 CCCC
4 BBB
4 AAA
现在我要创建一个新表,其中一个"数字"仅出现在一行中。 " word"中的相应值应转换为逗号分隔字符串。
结果表:
number word
====== ====
1 AAA
2 BBB,CCCC
4 CCCCC,BBB,AAA
如何用T-SQL解决这个问题?提前谢谢。
答案 0 :(得分:2)
我开始这样我也可以发布我的...
CREATE TABLE #test
(
ID tinyint
,Word varchar(20)
);
INSERT INTO #test
VALUES
(1,'aaa')
,(1,'bbb')
,(2,'abc')
,(2,'def')
,(2,'ghi')
,(3,'zzz');
SELECT DISTINCT
a.ID
,STUFF((
SELECT
',' + b.Word
FROM #test b
WHERE a.ID = b.ID
FOR XML PATH('')
),1,1,'') AS [Contains]
FROM #test a
答案 1 :(得分:0)
您需要使用FOR XML
以下是其工作原理的演示SQL FIDDLE