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 ?
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!