Iteam
GitHub

Snygg lösning för att bygga kommaseparerad lista i SQL

När du står inför faktumet att du behöver innehållet i en tabell som en kommaseparerad lista i en kolumn brukar oftast lösningen bli en stored procedure med en cursor och efter lite FETCH NEXT FROM etc så får du ut en sträng. Nedanstående lösningen är mycket snyggare och effektivare:

Dvs, du låter frågan själv bygga vidare på en tom variabel.

DECLARE @EmployeeList varchar(100)

SELECT @EmployeeList = COALESCE(@EmployeeList + ', ', '') + 
   CAST(Emp_UniqueID AS varchar(5))
FROM SalesCallsEmployees
WHERE SalCal_UniqueID = 1

SELECT @EmployeeList

--Results--

---------
1, 2, 4

Källa:

http://www.sqlteam.com/article/using-coalesce-to-build-comma-delimited-string

Christian Landgren
2007-09-18