Maison > base de données > tutoriel mysql > Comment puis-je compresser deux tableaux dans PostgreSQL ?

Comment puis-je compresser deux tableaux dans PostgreSQL ?

Susan Sarandon
Libérer: 2025-01-04 19:02:40
original
927 Les gens l'ont consulté

How Can I Zip Two Arrays in PostgreSQL?

La compression de tableaux dans PostgreSQL

Dans PostgreSQL, la combinaison de deux tableaux de longueur égale en paires peut être réalisée en utilisant diverses méthodes.

Versions 9.5 et Plus tard :

Postgres version 9.5 a introduit la fonction array_agg avec la construction ROWS FROM, qui permet la concaténation directe de tableaux :

SELECT ARRAY[a,b] AS ab
FROM   unnest('{a,b,c}'::text[], '{d,e,f}'::text[]) x(a,b);
Copier après la connexion

Versions 9.4 et antérieures :

Avant la version 9.5, il y en a deux approches :

Zipping simple :

Pour les tableaux avec le même nombre d'éléments, utilisez la requête suivante :

SELECT ARRAY[a,b] AS ab
FROM  (
   SELECT unnest('{a,b,c}'::text[]) AS a
        , unnest('{d,e,f}'::text[]) AS b
    ) x;
Copier après la connexion

Zipping pour les tableaux multidimensionnels :

Pour convertir les tableaux compressés en un tableau multidimensionnel, considérez la fonction d'agrégation personnalisée suivante :

CREATE AGGREGATE array_agg_mult (anyarray) (
   SFUNC    = array_cat
 , STYPE    = anyarray
 , INITCOND = '{}'
);
Copier après la connexion

Utilisez cette fonction d'agrégation avec l'opération d'imbrication :

SELECT array_agg_mult(ARRAY[ARRAY[a,b]]) AS ab
FROM  (
   SELECT unnest('{a,b,c}'::text[]) AS a
        , unnest('{d,e,f}'::text[]) AS b
    ) x;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal