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