Maison  >  Article  >  base de données  >  Utilisation de la fonction listagg dans Oracle

Utilisation de la fonction listagg dans Oracle

下次还敢
下次还敢original
2024-05-03 00:15:28530parcourir

La fonction LISTAGG concatène un ensemble de lignes de données en une chaîne, en utilisant le caractère de concaténation spécifié pour séparer les éléments. L'utilisation comprend : 1. Joindre toutes les valeurs dans une colonne ; 2. Séparer les valeurs à l'aide de caractères de jointure ; 3. Ignorer les valeurs NULL ; 4. Partitionner par groupe ;

Utilisation de la fonction listagg dans Oracle

Utilisation de la fonction LISTAGG dans Oracle

Définition :
La fonction LISTAGG concatène un ensemble de lignes de données en une chaîne et sépare les éléments à l'aide du connecteur spécifié.

Syntaxe :

<code>LISTAGG(expression, delimiter [IGNORE NULLS]) OVER (PARTITION BY partition_expression ORDER BY order_expression)</code>

Paramètres :

  • expression : les colonnes de données à connecter
  • delimiter : le délimiteur de caractères entre les éléments connectés (facultatif)
  • IGNORE NULLS : ignorer les valeurs NULL (facultatif) )
  • partition_expression : colonne de données partitionnées, précise le groupe dans lequel se trouvent les éléments du composant (facultatif)
  • order_expression : précise l'ordre dans lequel les éléments sont connectés (facultatif)

Utilisation :

La fonction LISTAGG est généralement utilisé pour combiner plusieurs lignes en une seule chaîne pour un affichage ou un traitement plus facile. Voici ses utilisations typiques :

1. Joignez toutes les valeurs dans une colonne

<code>SELECT LISTAGG(name) FROM table_name;</code>

2 Séparez les valeurs à l'aide de jointeurs

<code>SELECT LISTAGG(name, ', ') FROM table_name;</code>

3. . Partitionner par groupe

<code>SELECT LISTAGG(name IGNORE NULLS) FROM table_name;</code>
E 按5. Connectez la valeur dans l'ordre

<code>SELECT LISTAGG(name) OVER (PARTITION BY group_id) FROM table_name;</code>
E

Exemple :

Le tableau suivant montre l'exemple d'utilisation des fonctions Listagg dans la table des employés :

ID d'employé

nom. JohnUtilisez la fonction LISTAGG pour joindre tous les noms d'employés : Résultat :
<code>SELECT LISTAGG(name) FROM employees;</code>
Utilisez des virgules comme connecteurs :
1
2 Jane
3 David
<code>SELECT LISTAGG(name) OVER (ORDER BY name) FROM table_name;</code>
<code>John, Jane, David</code>

Résultats :

<code>SELECT LISTAGG(name, ', ') FROM employees;</code>

Partitionner par département et connecter les noms des employés pour chaque département :

<code>John, Jane, David</code>

Résultats :

<code>SELECT LISTAGG(name) OVER (PARTITION BY department) FROM employees;</code>

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