原始数据如下
首先通过FOR XML PATH获取XML 元素字符串
以XML格式输出查找结果
SELECT ',' + new_name
FROM new_test1Base
FOR XML PATH ('')
输出:,123,123,445,445,asdf
SELECT ',' + new_name as m2
FROM new_test1Base
FOR XML PATH ('n1')
可以对XML元素增加命名标签
输出:,123,123,445,445,asdf
其次通过STUFF去掉开头的逗号
SELECT texts = STUFF((
SELECT ',' + new_name
FROM new_test1Base
FOR XML PATH ('')
), 1, 1, '')
FROM new_test1Base
输出如下:
STUFF函数
字符串替代函数,4个参数
(字符串,开始位置->第一个元素为1,替代几个,替代物)
最后连接key分组
SELECT new_name, texts = STUFF((
SELECT ',' + new_name
FROM new_test1Base t1
WHERE t1.new_name=t2.new_name
FOR XML PATH ('')
), 1, 1, '')
FROM new_test1Base t2
GROUP BY t2.new_name