Si tiene SQL Server 2005 o superior, puede usar este FOR XML PATH & STUFF
truco:
DECLARE @CodeNameString varchar(100)
SELECT
@CodeNameString = STUFF( (SELECT ',' + CodeName
FROM dbo.AccountCodes
ORDER BY Sort
FOR XML PATH('')),
1, 1, '')
FOR XML PATH('')
básicamente concatena sus cadenas en un resultado XML largo (algo así como ,code1,code2,code3
etc.) y las STUFF
pone un carácter de "nada" en el primer carácter, p. borra la primera coma "superflua" para darte el resultado que probablemente estés buscando.
ACTUALIZACIÓN: OK - Entiendo los comentarios - si su texto en la tabla de la base de datos ya contiene caracteres como <
, >
o &
, luego mi solución actual de hecho, los codificará en <
, >
y &
.
Si tiene un problema con esa codificación XML, entonces sí, debe mirar la solución propuesta por @KM que también funciona para esos caracteres. Una palabra de advertencia de mí:este enfoque es mucho más intensivo en recursos y procesamiento, solo para que lo sepas.