Als u SQL Server 2005 of hoger gebruikt, kunt u deze FOR XML PATH & STUFF
gebruiken truc:
DECLARE @CodeNameString varchar(100)
SELECT
@CodeNameString = STUFF( (SELECT ',' + CodeName
FROM dbo.AccountCodes
ORDER BY Sort
FOR XML PATH('')),
1, 1, '')
De FOR XML PATH('')
voegt in feite uw strings samen tot één lang XML-resultaat (zoiets als ,code1,code2,code3
enz.) en de STUFF
plaatst een "niets" teken bij het eerste teken, b.v. wist de "overbodige" eerste komma, om u het resultaat te geven waarnaar u waarschijnlijk op zoek bent.
UPDATE: OK - ik begrijp de opmerkingen - als uw tekst in de databasetabel al tekens bevat zoals <
, >
of &
, dan mijn huidige oplossing zal deze in feite coderen in <
, >
, en &
.
Als je een probleem hebt met die XML-codering - ja, dan moet je kijken naar de door @KM voorgestelde oplossing die ook voor die tekens werkt. Eén woord van waarschuwing van mij:deze aanpak is veel meer resource- en verwerkingsintensief - zodat u het weet.