Maison >base de données >tutoriel mysql >Comment obtenir des valeurs uniques séparées par des virgules à l'aide de STRING_AGG dans SQL Server ?

Comment obtenir des valeurs uniques séparées par des virgules à l'aide de STRING_AGG dans SQL Server ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-03 10:22:39889parcourir

How to Get Unique Comma-Separated Values Using STRING_AGG in SQL Server?

Obtenir des valeurs uniques à l'aide de STRING_AGG dans SQL Server

Problème :

Utilisation de la fonction STRING_AGG , vous pouvez récupérer des valeurs séparées par des virgules à partir d'une colonne. Cependant, les résultats peuvent inclure des doublons. Comment obtenir uniquement les valeurs uniques dans la sortie ?

Requête :

La requête suivante utilise STRING_AGG pour obtenir les valeurs uniques :

SELECT 
    ProjectID,
    STRING_AGG(DISTINCT newID.value, ',') WITHIN GROUP (ORDER BY newID.value) AS NewField
FROM 
    [dbo].[Data] WITH (NOLOCK)  
CROSS APPLY 
    STRING_SPLIT([bID], ';') AS newID  
WHERE 
    newID.value IN ('O95833', 'Q96NY7-2')  
GROUP BY 
    ProjectID
ORDER BY 
    ProjectID

Explication :

Le mot-clé DISTINCT dans la sous-requête élimine les valeurs en double de l’ensemble de résultats. L'opérateur CROSS APPLY divise la colonne bID en valeurs individuelles à l'aide de la fonction STRING_SPLIT. La fonction STRING_AGG concatène ensuite ces valeurs dans une chaîne séparée par des virgules, et la clause ORDER BY garantit que les valeurs sont triées avant la concaténation.

Sortie :

La finale la sortie affiche uniquement les valeurs uniques pour chaque ID de projet :

ProjectID   NewField
-------------------------------
2           O95833, Q96NY7-2
4           Q96NY7-2

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn