Ако използвате SQL Server 2005 или по-нова версия, можете да използвате този ЗА XML ПЪТ И НЕЩО
трик:
DECLARE @CodeNameString varchar(100)
SELECT
@CodeNameString = STUFF( (SELECT ',' + CodeName
FROM dbo.AccountCodes
ORDER BY Sort
FOR XML PATH('')),
1, 1, '')
FOR XML PATH('')
по същество свързва вашите низове заедно в един, дълъг XML резултат (нещо като ,code1,code2,code3
и др.) и STUFF
поставя знак "нищо" на първия знак, напр. изтрива "излишната" първа запетая, за да ви даде резултата, който вероятно търсите.
АКТУАЛИЗИРАНЕ: Добре – разбирам коментарите – ако текстът ви в таблицата на базата данни вече съдържа знаци като <
, >код> или
&
, след това моето текущо решение всъщност ще ги кодира в <
, >
и &
.
Ако имате проблем с това XML кодиране - тогава да, трябва да погледнете решението, предложено от @KM, което работи и за тези знаци. Една дума предупреждение от мен:този подход е много повече интензивни ресурси и обработка - само да знаете.