Frage:
Wie erstelle ich einen String aus den Werten einer Select mit mehreren Zeilen.
Beispiel:
Select A from B
ergibt
Wert_1
Wert_2
...
Ziel soll es sein einen String mit dem Wert "Wert_1,Wert_2" zu erhalten
Lösung:
Eine Möglichlkeit besteht darin mittels Cursor die Daten hintereeinander zusammen zu stöpseln.
Die elegantere Lösung (bei nur einem Wert) besteht darin den Befehl "COALESCE" einzusetzen.
Beispiel:
DECLARE @sC varchar(max) = null
SELECT @sC = COALESCE(@sC + ';', '') + A FROM B
Alternative:
SELECT STUFF
(
( select ','+ cast(OfferID as nvarchar(255) )
from Emp b
WHERE a.EmpID= b.EmpID
FOR XML PATH(''), TYPE
).value('.', 'varchar(max)') ,1,1,'') AS COLUMN2
FROM Emp a
GROUP BY a.EmpID