2013-08-21 11 views
12

mam poniższej tabeli: tblFileŁączy wiele wierszy w jeden ciąg tekstowy z grupowania

tblFile

Moja Pożądany wyjściowa:

enter image description here

ja Konkatenowanie wiele wierszy w jeden Ciąg tekstowy; jednak nie mogę uzyskać poprawności grupowania. Ponieważ kod jest teraz wyświetlany tylko dla każdego rekordu w polu FileNameString: AAA, BBB, CCC, DDD, EEE, FFF

Wszelkie sugestie dotyczące grupowania!

SELECT FileID, Stuff(
(SELECT  N', ' + CONVERT(Varchar, FileName) 
FROM   tblFile FOR XML PATH(''),TYPE) 
.value('text()[1]','nvarchar(max)'),1,2,N'')AS FileNameString 
From tblFile 
GROUP BY FileID 
+4

[Proszę przestać deklarując 'varchar' bez length] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad-habits -do-kick-deklarując-varchar-without-length.aspx). –

+0

@Aaron Bertrand dzięki za link. Naprawdę fajny temat. –

Odpowiedz

12

spróbować -

SELECT DISTINCT 
     fileid 
    , STUFF((
     SELECT N', ' + CAST([filename] AS VARCHAR(255)) 
     FROM tblFile f2 
     WHERE f1.fileid = f2.fileid ---- string with grouping by fileid 
     FOR XML PATH (''), TYPE), 1, 2, '') AS FileNameString 
FROM tblFile f1 
+0

Idealny. Dziękuję Ci. – user1783736

+0

Cieszę się, że mogę ci pomóc :) –

+0

To było bardzo pomocne! – codingManiac

Powiązane problemy