Concaténation de valeurs basées sur l'ID
Dans la manipulation de données, il est souvent nécessaire de combiner les données de plusieurs lignes en une seule chaîne. Ceci peut être réalisé par concaténation, où une chaîne est assemblée à partir de fragments plus petits.
Énoncé du problème :
Vous avez un tableau appelé « Résultats » avec deux colonnes : » Response_ID" et "Étiquette". Chaque « Response_ID » correspond à plusieurs valeurs « Label ». Votre objectif est de générer un nouveau tableau avec une ligne par "Response_ID" et toutes les valeurs "Label" concaténées en une seule chaîne, séparées par des virgules.
Solution :
Pour concaténer des valeurs basées sur "Response_ID", vous pouvez utiliser le code SQL suivant requête :
select T1.Response_ID, stuff((select ','+T2.Label from Results as T2 where T1.Response_ID = T2.Response_ID for xml path(''), type).value('.', 'varchar(max)'), 1, 1, '') as Label from Results as T1 group by T1.Response_ID
Explication :
Stuff() : Ceci la fonction concatène les chaînes. Il prend les arguments suivants :
Exemple :
Considérez ce qui suit table :
Response_ID | Label |
---|---|
12147 | It was not clear |
12458 | Did not Understand |
12458 | Was not resolved |
12458 | Did not communicate |
12586 | Spoke too fast |
12587 | Too slow |
La requête ci-dessus produirait le résultat suivant :
Response_ID | Label |
---|---|
12147 | It was not clear |
12458 | Did not Understand,Was not resolved,Did not communicate |
12586 | Spoke too fast |
12587 | Too slow |
Remarque : L'ordre des chaînes concaténées n'est pas toujours prévisible. Pour un contrôle précis de la commande, vous pouvez utiliser une instruction « ORDER BY » dans la sous-requête.
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!