Si vous êtes sur SQL Server 2005 ou supérieur, vous pouvez utiliser ce FOR XML PATH & STUFF
astuce :
DECLARE @CodeNameString varchar(100)
SELECT
@CodeNameString = STUFF( (SELECT ',' + CodeName
FROM dbo.AccountCodes
ORDER BY Sort
FOR XML PATH('')),
1, 1, '')
Le FOR XML PATH('')
concatène essentiellement vos chaînes en un seul long résultat XML (quelque chose comme ,code1,code2,code3
etc.) et le STUFF
place un caractère "rien" au premier caractère, par ex. efface la première virgule "superflue", pour vous donner le résultat que vous recherchez probablement.
MISE À JOUR : OK - je comprends les commentaires - si votre texte dans la table de la base de données contient déjà des caractères comme <
, >
ou &
, puis ma solution actuelle les encodera en fait en <
, >
, et &
.
Si vous rencontrez un problème avec cet encodage XML - alors oui, vous devez consulter la solution proposée par @KM qui fonctionne également pour ces caractères. Un mot d'avertissement de moi :cette approche est beaucoup plus ressources et traitement intensifs - juste pour que vous le sachiez.