Maison >base de données >tutoriel mysql >Comment puis-je créer des listes de valeurs de colonnes séparées par des virgules dans DB2 à l'aide de LISTAGG ?
Génération de listes séparées par des virgules dans DB2 SQL à l'aide de LISTAGG
La fonction DB2 LISTAGG
simplifie la création de listes de valeurs de colonnes séparées par des virgules, en particulier lorsqu'il s'agit de données groupées. Cette fonction concatène efficacement les valeurs d'une colonne spécifiée pour les lignes partageant les mêmes critères de regroupement, à l'aide d'un délimiteur personnalisé.
Illustrons avec un tableau contenant des colonnes ID
et Role
, où un ID
peut avoir plusieurs valeurs Role
associées. Pour générer une liste de rôles séparés par des virgules pour chaque ID unique, utilisez cette requête SQL :
<code class="language-sql">SELECT ID, LISTAGG(Role, ', ') WITHIN GROUP (ORDER BY Role ASC) AS Roles FROM myTable GROUP BY ID;</code>
Exemple de données :
<code>ID | Role ------------ 4555 | 2 4555 | 3 4555 | 4</code>
Résultat :
<code>ID | Roles ------------ 4555 | 2, 3, 4</code>
La clause ORDER BY
dans LISTAGG
contrôle l'ordre des valeurs concaténées. ORDER BY Role ASC
les organise par ordre croissant ; ORDER BY Role DESC
les organiserait par ordre décroissant. L'omission de ORDER BY
entraîne un ordre non défini.
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!