T-SQL 2008:使用for xml路径和新换行符连接行

时间:2016-10-12 23:36:33

标签: sql-server tsql for-xml-path

我的下表包含以下值:

create table test 
(
    folder nvarchar(20),
    size int
)

Video   255
Music   255
Docs    255
Papers  255

我需要连接文件夹字段,并用逗号和新行分隔。到目前为止,我有这个:

select distinct folder + ','   as [text()]
from  test
for xml path('')

这将与','分隔,但我无法使用char(13)使新行工作。

1 个答案:

答案 0 :(得分:0)

不是100%清楚你的预期结果,但这里有点黑客

Declare @Test table (folder nvarchar(20),size int)
Insert Into @Test values
('Video' ,255),
('Music' ,255),
('Docs'  ,255),
('Papers',255)

Select [text()] = Replace(cast([text()] as nvarchar(max)),'||',char(13)+char(10))
 From (Select [text()] = (Select Distinct folder + '||' From @test For XML path('') ) ) A

返回

text()
Docs
Music
Papers
Video

另一个可能是

Declare @String varchar(max) = ''
Select @String=@String+Folder+char(13)+char(10)
  From @Test

Select [text()]=@String

返回

text()
Video
Music
Docs
Papers