Maison >base de données >tutoriel mysql >Comment concaténer des relations un-à-plusieurs en colonnes uniques dans Informix ?

Comment concaténer des relations un-à-plusieurs en colonnes uniques dans Informix ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-01 11:22:10670parcourir

How to Concatenate One-to-Many Relationships into Unique Columns in Informix?

Concaténer des relations un-à-plusieurs en tant que colonnes uniques dans Informix

La conversion de relations un-à-plusieurs en deux colonnes uniques nécessite une base de données spécifique fonctions et syntaxe. Cette question explore comment réaliser cette conversion à l'aide d'Informix SQL, similaire à l'approche décrite dans les questions StackOverflow référencées.

Fonction d'agrégation définie par l'utilisateur

La solution proposée implique création d'une fonction d'agrégation définie par l'utilisateur nommée group_concat. Cette fonction utilise quatre sous-fonctions :

  • gc_init : initialise la chaîne vide.
  • gc_iter : ajoute de manière itérative des valeurs à la chaîne, séparées par des virgules.
  • gc_comb : Combine les résultats partiels générés à partir de différentes partitions.
  • gc_fini : Renvoie le résultat final chaîne concaténée.

Requête de concaténation

Pour concaténer les codes de chaque identifiant unique, exécutez la requête suivante :

SELECT id, group_concat(codes)
FROM anonymous_table
GROUP BY id;

Exemple de tableau et résultats

L'exemple de table anonyme_table contient des codes en double pour plusieurs Pièces d'identité. La sortie de la requête produit le résultat souhaité :

id    codes
63592 PELL
58640 SUBL, USBL
73571 PELL, USBL, SUBL

Notes

  • L'agrégat group_concat peut gérer n'importe quel type de données convertible en VARCHAR(255), tels que les types numériques et temporels.
  • La taille globale est limitée à 2048 octets par défaut (jusqu'à 16 380 octets dans Informix 12.10.FC5), ce qui pose des limitations potentielles pour les données volumineuses.
  • Pour supprimer la fonction d'agrégation, utilisez les commandes drop fournies.

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