2008-11-17 4 views
5

Ich habe ein Ergebnis in MS-SQL innerhalb einer gespeicherten Prozedur, und lassen Sie uns sagen, es hat eine VARCHAR-Spalte, aber viele Zeilen. Ich möchte eine Komma-getrennte Zeichenfolge erstellen, die alle diese Werte enthält. Gibt es eine einfache Möglichkeit dies zu tun, oder muss ich jedes Ergebnis durchlaufen und die Zeichenfolge manuell erstellen?Erstellen einer langen Zeichenfolge aus einer Ergebnismenge

Vorzugsweise möchte ich dies in der Stored Procedure selbst tun. Hier

Antwort

7

ist ein Weg (mit AdventureWorks2008 DB):

DECLARE @name varchar(255) 
SET @name = NULL 

select @Name = COALESCE(@Name + ',','') + LastName from Person.Person 
Select @name 

Und hier ist eine andere (für SQL ab 2005):

SELECT 
    LastName + ',' 
FROM 
    Person.Person 
FOR XML PATH('') 

In beiden Fällen müssen Sie das Komma entfernen '' (kann verwenden STUFF() Funktion)

+0

Der Weg, den ich gerade selbst entdeckt habe: D – Sekhat