语法如下:
SELECT STUFF((select ‘,‘+c.MR_RolName from 查询语句 FOR XML PATH(‘‘)),1,1,‘‘);
解释如下
1.STUFF函数。表示截取拼接函数
第一个参数表示原字符串
第二个参数表示从哪个坐标开始,参数从1开始
第三个参数表示截取几位。
最后一个参数表示将什么内容插入到截取部分。
2.FOR XML PATH(‘‘)
表示将查询结果按照xml形式展示,path里面的内容表示父节点的名称,这里的‘‘表示为空
比如我在这里没有给 ‘,‘+c.MR_RolName 添加自定义名称,所以为空,加入定义了,比如myname,就会变成
<myname>‘,‘+c.MR_RolName</myname><myname>‘,‘+c.MR_RolName</myname>。。。
以一行展示,但是没有定义的话,就是
‘,‘+c.MR_RolName ‘,‘+c.MR_RolName
那么就很清晰了。上面的语句,就是先把查询结果换成逗号加参数的形式以一行展示,然后去除掉第一个逗号,赋值为‘‘
如果还不是很清楚的话,可以参考其他博客:
http://www.360doc.com/content/20/0214/22/11881101_892070529.shtml