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 ?

Comment puis-je créer des listes de valeurs de colonnes séparées par des virgules dans DB2 à l'aide de LISTAGG ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-09 14:46:42887parcourir

How Can I Create Comma-Separated Lists of Column Values in DB2 Using 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!

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