mssql FOR XML方法多行合并为一条数据

实验室表:LaboratoryRoom

标签表:Tag

关系表:Lab_Tag

 

select lab.Name,STUFF(
   (
   SELECT
     ',' + isnull(TagName,'')
   FROM
     Tag
   WHERE
     Id in (select TagId from Lab_Tag where LabId = lab.Id)
   FOR XML PATH('')
   ),
   1, 1, '') as tags from dbo.LaboratoryRoom as lab

 

stuff函数用于去掉多余的逗号

stuff函数用法:

select STUFF('12345', 2, 2, '6789') 表示:

从第一个字符串第2个位置("2")开始的长度为2的字符串("23")替换为第二个字符串("6789")

 

sql2005以上支持

posted on 2012-04-25 21:14  阿蛆  阅读(456)  评论(0)    收藏  举报