Maison > base de données > tutoriel mysql > Comment concaténer des étiquettes basées sur l'ID de réponse à l'aide de SQL ?

Comment concaténer des étiquettes basées sur l'ID de réponse à l'aide de SQL ?

Linda Hamilton
Libérer: 2024-12-31 21:36:11
original
260 Les gens l'ont consulté

How to Concatenate Labels Based on Response ID Using SQL?

Concaténation de valeurs basées sur l'ID : une solution utilisant SQL

Lorsque vous travaillez avec des données, le besoin de concaténer des valeurs basées sur des ID partagés se pose fréquemment . Dans ce scénario, nous rencontrons un tableau avec une liste d’ID de réponse et d’étiquettes associées. Notre objectif est de transformer ces données dans un format dans lequel chaque ligne affiche l'ID de réponse et une liste d'étiquettes séparées par des virgules.

Pour y parvenir, nous pouvons exploiter les capacités de regroupement et de concaténation de SQL. Nous commençons par déclarer une table temporaire appelée @T et la remplissons avec les exemples de données. La requête ci-dessous décrit les étapes impliquées :

select T1.Response_ID,
       stuff((select ','+T2.Label
              from @T as T2
              where T1.Response_ID = T2.Response_ID
              for xml path(''), type).value('.', 'varchar(max)'), 1, 1, '') as Label
from @T as T1
group by T1.Response_ID
Copier après la connexion
  1. Regroupement : Nous regroupons les données par Response_ID à l'aide de la clause group by T1.Response_ID. Cette étape garantit que nous opérons sur un seul ensemble d'étiquettes pour chaque ID de réponse.
  2. Sous-requête : Au sein de chaque groupe, nous utilisons une sous-requête pour récupérer les étiquettes associées à cet ID de réponse. La sous-requête récupère les valeurs Label et les combine en une seule chaîne séparée par des virgules. La partie .value('.', 'varchar(max)') gère les cas où les étiquettes contiennent des caractères peu conviviaux pour XML.
  3. Concaténation : La fonction stuff() est utilisée pour concaténer les Étiquettes séparées par des virgules en une seule chaîne. Il supprime la virgule de début en spécifiant 1, 1, '' comme arguments de suppression.
  4. Projection : Enfin, l'instruction select projette le Response_ID et la colonne Label concaténée comme sortie souhaitée.

En exécutant cette requête, nous obtenons les données transformées où chaque ligne représente un ID de réponse avec les étiquettes associées concaténées et séparées par des virgules. Cette solution offre un moyen efficace d'agréger et de présenter des données basées sur des identifiants partagés.

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