Se você estiver no SQL Server 2005 ou superior, poderá usar este
FOR XML PATH & STUFF
truque:DECLARE @CodeNameString varchar(100)
SELECT
@CodeNameString = STUFF( (SELECT ',' + CodeName
FROM dbo.AccountCodes
ORDER BY Sort
FOR XML PATH('')),
1, 1, '')
O
FOR XML PATH('')
basicamente concatena suas strings em um resultado XML longo (algo como ,code1,code2,code3
etc.) e o STUFF
coloca um caractere "nada" no primeiro caractere, por exemplo apaga a primeira vírgula "supérflua", para fornecer o resultado que você provavelmente está procurando. ATUALIZAÇÃO: OK - eu entendo os comentários - se o seu texto na tabela do banco de dados já contém caracteres como
<
, >
ou &
, então minha solução atual irá de fato codificá-los em <
, >
e &
. Se você tiver um problema com essa codificação XML - então sim, você deve olhar para a solução proposta por @KM que também funciona para esses caracteres. Uma palavra de aviso de mim:esta abordagem é muito mais recursos e processamento intensivo - só para você saber.