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 ?

Comment puis-je créer des listes de valeurs séparées par des virgules à partir de groupes dans DB2 ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-09 14:36:40949parcourir

How Can I Create Comma-Separated Lists of Values from Groups in 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!

Déclaration:
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