Se utilizzi SQL Server 2005 o versioni successive, puoi utilizzare questo FOR XML PATH & STUFF
trucco:
DECLARE @CodeNameString varchar(100)
SELECT
@CodeNameString = STUFF( (SELECT ',' + CodeName
FROM dbo.AccountCodes
ORDER BY Sort
FOR XML PATH('')),
1, 1, '')
Il FOR XML PATH('')
fondamentalmente concatena le tue stringhe insieme in un unico risultato XML lungo (qualcosa come ,code1,code2,code3
ecc.) e il STUFF
mette un carattere "niente" al primo carattere, ad es. cancella la prima virgola "superflua", per darti il risultato che probabilmente stai cercando.
AGGIORNAMENTO: OK - Ho capito i commenti - se il tuo testo nella tabella del database contiene già caratteri come <
, >
o &
, quindi la mia soluzione attuale li codificherà infatti in <
, >
e &
.
Se hai un problema con quella codifica XML, allora sì, devi guardare la soluzione proposta da @KM che funziona anche per quei caratteri. Una parola di avvertimento da parte mia:questo approccio è molto di più ad alta intensità di risorse e di elaborazione - solo così lo sai.