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
Libérer: 2025-01-03 10:22:39
original
964 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal