从sql表创建CSV列表

时间:2013-12-12 21:29:40

标签: sql tsql

这应该是一个简单的,但我遇到了麻烦。我想从我拥有的表创建动态分隔列表。例如:

表:

Email
Person1@address.com
Person2@address.com

最终结果应该给我

Person1@address.com; person2@address.com

我不确定获得这些结果的正确方法是什么。我认为我可以用ForXML做到这一点,但对于看似简单的问题来说它非常复杂。

任何建议都将不胜感激。我将继续搞乱我发现的ForXml示例。

3 个答案:

答案 0 :(得分:2)

这应该会回复所需的结果:

SELECT STUFF((SELECT ';'+ Email AS [text()] FROM Person FOR XML PATH('')),1,1,'');

http://sqlfiddle.com/#!3/c3fac/3

答案 1 :(得分:1)

declare @emailstring varchar(max) = ''

select @emailstring = @emailstring + email + ';'
from tablename

set @emailstring = left(@emailstring,len(@emailstring)-1)

答案 2 :(得分:0)

看起来你正在使用分号,所以在MySQL你可以做

select group_concat(Email SEPARATOR ';')
from   Table

你已经完成了。

相关问题