jeudi 2 avril 2009

Code T-SQL pour unir les valeurs d'une table dans une chaîne de caractères

Le code suivant (pour Microsoft SQL Server) permet de joindre les valeurs d'un champ d'une table afin de construire une chaîne de caractères dont chaque élément est séparé par un délimiteur (qui peut être personnalisé).

La chaîne de caractères ainsi créée peut être utilisée, par exemple, pour passer en paramètre une liste de valeurs sous la forme sérialisée.

Voici le code dans un exemple d'utilisation :
DECLARE @Table table
(
Value varchar(MAX)
)

INSERT INTO @Table VALUES ('12'),('34'),('56'),('78'),('90')

DECLARE @List varchar(MAX)
DECLARE @Delimiter varchar(5) = ','

SELECT @List = COALESCE(@List + @Delimiter, '') + Value
FROM @Table

SELECT @List