Tabellenzeilen als String zurückgeben
Das FOR XML Schlüsselwort in T-SQL kann dazu missbraucht werden die Resultate eines Sub-Select zu einem String zusammenzusetzen.
Schauen wir uns mal folgendes Datenmodell an:
Wir möchten eine Liste aller Produkte ausgeben, und in derselben Liste zeigen in welchen Farben ein Produkt lieferbar ist. Mit Hilfe des FOR XML Konstrukts lässt sich das einfach in einer einzigen SQL Abfrage realisieren:
SELECT
P.Name,
(SELECT STUFF((
SELECT ', ' + C.Name
FROM
Color C
INNER JOIN
ProductColor PC ON PC.ColorId = C.ColorId
WHERE
PC.ProductId = P.ProductId
FOR XML PATH('')), 1, 2, '')
) AS Colors
FROM
Product P
Diese Abfrage liefert folgendes Ergebnis:
Kommentare
Kommentare sind geschlossen.