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
我有以下 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