2008-11-17 20 views
5

Mam zestaw wyników w MS-SQL w ramach procedura składowana, i powiedzmy, że ma jedną kolumnę VARCHAR, ale wiele wierszy. Chcę utworzyć ciąg znaków rozdzielany przecinkami, zawierający wszystkie te wartości. Czy istnieje prosty sposób wykonania tego, czy też będę musiał przejść przez każdy wynik i ręcznie utworzyć łańcuch?Tworzenie długich ciągów z zestawu wyników

Najlepiej chciałbym to zrobić w samej procedurze przechowywanej.

Odpowiedz

7

Oto jeden sposób (za pomocą AdventureWorks2008 dB):

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

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

I tu jest inny (dla SQL 2005 roku):

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

W obu przypadkach trzeba będzie usunąć przecinek trailing "," (można użyć funkcji STUFF())

+0

Sposób, w jaki sam odkryłem: D – Sekhat

Powiązane problemy