Les données groupées DB2 SQL génèrent des valeurs séparées par des virgules
Question : Existe-t-il une fonction dans DB2 SQL qui peut générer directement des valeurs séparées par des virgules de données de colonnes groupées ?
Scénario : Nous avons une table avec une colonne ID et une colonne Rôle. Il peut y avoir plusieurs lignes pour le même ID, chaque ligne représentant un rôle différent pour cet ID. L'objectif est de concaténer ces rôles dans une chaîne séparée par des virgules pour chaque identifiant unique.
Exemple :
<code>ID | Role ------------ 4555 | 2 4555 | 3 4555 | 4</code>
Résultat attendu :
<code>4555 2,3,4</code>
Réponse :
DB2 LUW 9.7 introduit une nouvelle fonction LITAGG qui résout ce problème.
Grammaire :
<code>LISTAGG(expression, delimiter) WITHIN GROUP (ORDER BY expression ASC|DESC)</code>
Instructions :
Utilisation :
Pour récupérer les valeurs de rôle séparées par des virgules pour chaque ID unique, vous pouvez utiliser la requête suivante :
<code>SELECT id, LISTAGG(role, ', ') WITHIN GROUP (ORDER BY role ASC) AS roles FROM myTable GROUP BY id;</code>
Sortie :
<code>ID | roles ------------ 4555 | 2,3,4</code>
Notes supplémentaires :
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!