Comment faire une liste de T-SQL résultats avec des virgules entre eux?

Supposons que nous avons une simple requête comme ceci:

SELECT x 
FROM t
WHERE t.y = z

Si nous avons un enregistrement dans le jeu de résultats, je veux définir une variable @v pour qu'une valeur. Si nous avons deux ou plusieurs enregistrements, j'aimerais que les résultats soient séparées par une virgule et un espace. Quelle est la meilleure façon d'écrire ce code T-SQL?

Exemple:

ensemble de résultats de 1 record:

Value1

ensemble de résultats de 2 dossiers:

Value1, Value2

résultat ensemble de 3 documents:

Value1, Value2, Value3
What is the best way? "Meilleur" est subjectif... dépend de ce que vous recherchez. Pouvez-vous être plus précis? N' pour être fait entièrement en T-SQL ou utilisez-vous une solution sur le client?
Cela s'applique? stackoverflow.com/questions/1048209/...
Je suis juste désireux d'écrire une fonction générique pour cette fin .. normalement je les gérer à l' .NET code après j'ai eu les résultats, mais j'aimerais le faire en SQL
double possible de Concaténer le nombre de lignes dans une seule chaîne de texte?
De le faire .NET est sans doute une meilleure approche, bien que la réponse que j'ai fournie travail. T-SQL est notoirement mauvais à la chaîne de traitement.

OriginalL'auteur MacGyver | 2012-03-15