Maison > base de données > tutoriel mysql > Comment puis-je concaténer les chaînes dans SQL Server en utilisant Group By?

Comment puis-je concaténer les chaînes dans SQL Server en utilisant Group By?

DDD
Libérer: 2025-01-25 02:28:10
original
297 Les gens l'ont consulté

How Can I Concatenate Strings in SQL Server Using GROUP BY?

Utilisation de la chaîne de connexion GROUP BY dans SQL Server

La clause GROUP BY est un outil puissant pour gérer la concaténation de chaînes dans SQL Server. En regroupant les lignes en fonction de champs communs, vous pouvez combiner efficacement les chaînes associées en un seul résultat de jointure.

Regardons un scénario :

Vous disposez d'un tableau avec des colonnes ID, Nom et Valeur. Vous souhaitez joindre toutes les lignes portant le même ID en une seule ligne contenant une colonne nommée Colonne contenant une chaîne de connexion au format Nom: Valeur.

Pour ce faire, vous pouvez combiner FOR XML et PATH avec la clause GROUP BY :

<code class="language-sql">CREATE TABLE #YourTable ([ID] INT, [Name] CHAR(1), [Value] INT)

INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (1,'A',4)
INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (1,'B',8)
INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (2,'C',9)

SELECT 
  [ID],
  STUFF((
    SELECT ', ' + [Name] + ':' + CAST([Value] AS VARCHAR(MAX)) 
    FROM #YourTable 
    WHERE (ID = Results.ID) 
    FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)')
  ,1,2,'') AS NameValues
FROM #YourTable Results
GROUP BY ID

DROP TABLE #YourTable</code>
Copier après la connexion

Dans cette requête :

    La sous-requête
  • utilise FOR XML PATH('') pour créer une représentation XML des colonnes Nom et Valeur, séparées par des virgules.
  • La clause
  • PATH('') spécifie que les chaînes concaténées doivent être traitées comme une valeur unique.
  • La fonction
  • STUFF supprime les virgules et les espaces au début de la chaîne de connexion.
  • Utilisez la clause GROUP BY pour regrouper les résultats par ID.

En conséquence, vous obtiendrez le résultat suivant :

<code>ID       NameValues
1          A:4, B:8
2          C:9</code>
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal