Sql 如何将数据行合并到对象中

Sql 如何将数据行合并到对象中,sql,sql-server,Sql,Sql Server,如何将数据行合并到对象中 例如: Declare @Email as varchar(max); Select @Email=email from M_Employee 我想将所有电子邮件合并到带有“;”的@email中作为分隔符。试试这个 select @Email=LEFT(l.list,LEN(l.list)-1) FROM ( SELECT Email + '; ' AS [text()] FROM M_Employee FOR XML PATH('') )l(list) 您可

如何将数据行合并到对象中

例如:

Declare @Email as varchar(max);

Select @Email=email from M_Employee
我想将所有电子邮件合并到带有“;”的@email中作为分隔符。

试试这个

select 
@Email=LEFT(l.list,LEN(l.list)-1)
FROM
(
SELECT  Email + '; ' AS [text()]
FROM M_Employee
FOR XML PATH('')
)l(list)
您可以使用,与:

这将给你所有的电子邮件以逗号分隔


这是一个非常常见的问题。使用
填充
表示XML路径
和分隔字符串。如果你被语法所困扰,请用你尝试过的内容编辑你的帖子。@Downvoter,想解释一下吗??!!!!!!!!答案有什么问题????或者让我们看看你的花哨答案!!!!!!!!!1 op希望电子邮件用
分隔这就是我的答案,那么有什么问题吗????????!!!!!!!!!!这里有人无缘无故地否决了投票。别管了。干杯+1.
SELECT @Email = STUFF((SELECT distinct ';' +
                        email 
                       FROM M_Employee AS t
                      FOR XML PATH(''), TYPE
                     ).value('.', 'NVARCHAR(MAX)') 
                        , 1, 1, '');