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

T-SQL 2008: concatenate rows using for xml path and new line feed carriage

我有以下 table 具有以下值:

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) 使新行正常工作。

不是 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

Returns

text()
Docs
Music
Papers
Video

另一个可能是

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

Select [text()]=@String

Returns

text()
Video
Music
Docs
Papers