Maison > base de données > tutoriel mysql > Comment éliminer les doublons lors de l'utilisation de STRING_AGG dans SQL Server ?

Comment éliminer les doublons lors de l'utilisation de STRING_AGG dans SQL Server ?

Linda Hamilton
Libérer: 2025-01-04 07:51:35
original
649 Les gens l'ont consulté

How to Eliminate Duplicates When Using STRING_AGG in SQL Server?

Élimination des doublons dans les résultats STRING_AGG

La tâche consiste à récupérer des valeurs uniques à l'aide de la fonction STRING_AGG dans SQL Server, en garantissant que les éléments en double sont supprimés .

Dans l'exemple de requête fourni, la fonction STRING_AGG est utilisée pour concaténer des chaînes en une seule. champ séparé par des virgules, regroupé par ProjectID. Cependant, le NewField résultant contient des valeurs en double.

Pour obtenir un NewField unique, nous pouvons utiliser le mot-clé DISTINCT dans une sous-requête. La requête mise à jour est :

SELECT 
  ProjectID
, STRING_AGG(value, ',') WITHIN GROUP (ORDER BY value) AS 
  NewField
FROM (
  SELECT DISTINCT 
    ProjectID
  , newId.value 
  FROM [dbo].[Data] WITH (NOLOCK)  
  CROSS APPLY STRING_SPLIT([bID],';') AS newId  
  WHERE newId.value IN (   'O95833' , 'Q96NY7-2'  )  
) x
GROUP BY ProjectID
ORDER BY ProjectID
Copier après la connexion

La sous-requête sélectionne d'abord les valeurs distinctes de ProjectID et newId.value dans la table d'origine. Ces valeurs distinctes sont ensuite utilisées dans la requête externe pour effectuer l'opération STRING_AGG, garantissant ainsi qu'aucun doublon n'est présent dans le résultat final de NewField.

L'exécution de cette requête modifiée produit le résultat souhaité avec uniquement des valeurs uniques :

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!

source:php.cn
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