2016-10-12 2 views
0

je le tableau suivant avec les valeurs suivantes:T-SQL 2008: concaténer lignes à l'aide pour le chemin xml et le nouveau chariot d'alimentation en ligne

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

Video 255 
Music 255 
Docs 255 
Papers 255 

Je dois concaténer le champ du dossier et être séparés par des virgules et une nouvelle ligne. , Je Jusqu'à présent ceci:

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

Cela concaténer séparés par ', mais je ne peux pas obtenir la nouvelle ligne de travail en utilisant char (13).

Répondre

0

Non clair à 100% sur vos résultats attendus, mais voici un petit hack

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 

Retours

text() 
Docs 
Music 
Papers 
Video 

Un autre pourrait être

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

Select [text()][email protected] 

Retours

text() 
Video 
Music 
Docs 
Papers