Wenn Sie SQL Server 2005 oder höher verwenden, können Sie diesen FOR XML PATH & STUFF
verwenden Trick:
DECLARE @CodeNameString varchar(100)
SELECT
@CodeNameString = STUFF( (SELECT ',' + CodeName
FROM dbo.AccountCodes
ORDER BY Sort
FOR XML PATH('')),
1, 1, '')
Der FOR XML PATH('')
verkettet Ihre Strings im Grunde zu einem langen XML-Ergebnis (etwas wie ,code1,code2,code3
etc.) und STUFF
setzt ein "Nichts"-Zeichen an das erste Zeichen, z.B. löscht das "überflüssige" erste Komma, um Ihnen das Ergebnis zu liefern, nach dem Sie wahrscheinlich suchen.
AKTUALISIERUNG: OK - ich verstehe die Kommentare - wenn Ihr Text in der Datenbanktabelle bereits Zeichen wie <
enthält , >
oder &
, dann meine aktuelle Lösung wird diese tatsächlich in <
kodieren , >
, und &
.
Wenn Sie ein Problem mit dieser XML-Codierung haben, müssen Sie sich die von @KM vorgeschlagene Lösung ansehen, die auch für diese Zeichen funktioniert. Ein Wort der Warnung von mir:dieser Ansatz ist viel mehr ressourcen- und verarbeitungsintensiv - nur damit Sie es wissen.