Colonne SQL Server dans une variable en ligne avec un séparateur

Afficher une colonne SQL Server dans une variable avec un séparateur de type virgule par exemple ? Ou comment récupérer le résultat d’une requête en colonne ? Existe-t-il une requête simple pour transformer le résultat de colonne en ligne ? Comment le faire avec une seule requête ?

Dans certains cas, il est utile de récupérer toutes les valeurs d’une colonne dans une variable T-SQL et d’ajouter un séparateur. Pour préparer un tableau avec des caractéristiques spécifiques par exemple.

Afficher le contenu d’une colonne SQL Server en ligne, dans une variable, et avec séparateur

Par exemple, comment transformer l’affiche standard d’une colonne SQL Server, comme ceci:

Colonne
Résultat 1
Résultat 2
Résultat 3
Résultat 4

Et afficher cela, soit le résultat de toutes les lignes sélectionnées dans une variable avec un séparateur virgule ou point-virgule :

Résultat 1, Résultat 2, Résultat 3, Résultat 4

Avec SQL Server, pour transformer le contenu d’une colonne SQL Server en ligne séparés par des virgules, plutôt qu’en colonne. Par exemple chaque résultat séparé par une virgule, utiliser la fonction SQL Server COALESCE().

DECLARE @resultat_en_ligne nvarchar(1000);

SELECT 	@resultat_en_ligne = COALESCE(@resultat_en_ligne+',','') + COLONNE
FROM 	BASE.dbo.TABLE;

SELECT 	@resultat_en_ligne;

Cet exemple de script écrit en langage T-SQL est particulièrement utile pour afficher par exemple des valeurs distinctes d’une colonne, triée par ordre croissant.

Le résultat de la requête en colonne sera donc composé d’une seule ligne avec les résultats concaténés et séparés par une virgule.

Pour aller plus loin, dans le même ordre d’idée, voici une requête SQL pour convertir une variable SQL Server XML en texte.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*