se puede envolver la instrucción de selección en una subselección y aplicar se unen en los resultados.
Declare @name varchar(max)
select @name = COALESCE(@name + ', ','') + user_email
from (select distinct user_email
from PostedCommentMaster
where article_id = @id) pc
Tenga en cuenta que esto utiliza una característica no documentada de SQL Server para concatenar los resultados en una cadena. Aunque ya no puedo encontrar un enlace, recuerdo haber leído que no deberías confiar en este comportamiento.
Una mejor alternativa sería utilizar la sintaxis FOR XML
para devolver una cadena concatenada. A search on SO devuelve resultados múltiples que puede usar como ejemplo.
¿Por qué está usando 'COALESCE' aquí? Primero declara la variable @name, luego verifica inmediatamente si es nula. Siempre será nulo, ya que nunca se ajustará a nada – paul
@paul: esta es una forma (no documentada) de concatenar una columna de un conjunto de resultados. –
Veo, por lo que '@ name' en realidad se vuelve a evaluar por cada fila devuelta. inteligente. – paul