Maison >base de données >tutoriel mysql >Comment puis-je créer des listes de valeurs séparées par des virgules à partir de groupes dans DB2 ?
Générer une sortie séparée par des virgules par groupe dans DB2
La fonction intégrée de DB2 LISTAGG
peut concaténer les valeurs de colonnes avec le même regroupement, séparées par des virgules. Ceci est utile lorsque vous devez fusionner des données au sein de groupes.
Par exemple, supposons qu'un tableau contienne deux colonnes, ID et Rôle, et que trois lignes aient le même ID mais des valeurs de rôle différentes. L'objectif est de concaténer les valeurs de rôle pour chaque ID dans une liste séparée par des virgules.
La fonction LISTAGG
introduite à partir de DB2 LUW 9.7 accomplit ceci :
<code class="language-sql">SELECT ID, LISTAGG(Role, ', ') AS Roles FROM myTable GROUP BY ID;</code>
Cette requête générera le résultat souhaité :
<code>ID Roles ---------- 4555 2,3,4</code>
Il convient de noter que vous pouvez utiliser la clause WITHIN GROUP
et l'instruction ORDER BY
pour spécifier l'ordre dans lequel les valeurs sont concaténées. Cela permet un meilleur contrôle sur l'ordre dans lequel les valeurs sont répertoriées :
<code class="language-sql">SELECT ID, LISTAGG(Role, ', ') WITHIN GROUP (ORDER BY Role ASC) AS Roles FROM myTable GROUP BY ID;</code>
Dans ce cas, le résultat sera :
<code>ID Roles ---------- 4555 2,3,4</code>
LISTAGG
Fournit un moyen pratique d'agréger et de joindre des données dans DB2, permettant des opérations de chaîne efficaces basées sur des groupes.
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!