Pokud používáte SQL Server 2005 nebo vyšší, můžete použít tento FOR XML PATH & STUFF
trik:
DECLARE @CodeNameString varchar(100)
SELECT
@CodeNameString = STUFF( (SELECT ',' + CodeName
FROM dbo.AccountCodes
ORDER BY Sort
FOR XML PATH('')),
1, 1, '')
FOR XML PATH('')
v podstatě zřetězí vaše řetězce do jednoho dlouhého výsledku XML (něco jako ,code1,code2,code3
atd.) a STUFF
umístí na první znak znak "nic", např. vymaže "zbytečnou" první čárku, aby vám poskytl výsledek, který pravděpodobně hledáte.
AKTUALIZACE: OK – rozumím komentářům – pokud váš text v tabulce databáze již obsahuje znaky jako <
, >
nebo &
a poté moje aktuální řešení ve skutečnosti je zakóduje do <
, >
a &
.
Pokud máte problém s tímto kódováním XML - pak ano, musíte se podívat na řešení navržené @KM, které funguje i pro tyto znaky. Jedno slovo varování ode mě:tento přístup je mnohem více náročné na zdroje a zpracování – jen abyste věděli.