"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je combiner des tableaux dans PostgreSQL?

Comment puis-je combiner des tableaux dans PostgreSQL?

Publié le 2025-03-04
Parcourir:254

How Can I Combine Arrays in PostgreSQL?

combinant des tableaux dans PostgreSQL: un guide complet

introduction

postgresql fournit diverses méthodes pour manipuler les tableaux. Une opération commune consiste à combiner deux tableaux de longueur égale en paires d'éléments. Cet article explore différentes approches pour réaliser cette tâche, en considérant les versions postgresql et les cas d'utilisation spécifiques.

Zipping Arrays pour une sortie unique

postgresql 9.5 ou ultérieure CONCATENER LES TAIRNES MULTIPLES en un tableau de dimension supérieure. Cette fonction simplifie les tâches de combinaison de table De UNNEST ('{a, b, c}' :: text []) as a, innest ('{d, e, f}' :: text []) as b;

postgreSql 9.4

SELECT array_agg(ARRAY[a, b]) AS ab
FROM unnest('{a,b,c}'::text[]) AS a, unnest('{d,e,f}'::text[]) AS b;
avant Row De.

sélectionnez le tableau [a, b] comme ab De Unnest ('{a, b, c}' :: text [], '{d, e, f}' :: text []) Comme tmp (a, b);

zipping baies pour la sortie multidimensionnelle

pour les cas où vous devez combiner des tableaux dans un tableau multidimensionnel, une fonction d'agrégat personnalisée est nécessaire. Renvoie l'ensemble de la langue anarray sql comme $ func $ Sélectionnez Array [Array [A, B]] De innais (1 $) comme innest1 (a, b); $ func $;
SELECT array_agg(ARRAY[a, b]) AS ab
FROM unnest('{a,b,c}'::text[]) AS a, unnest('{d,e,f}'::text[]) AS b;
sélectionnez array_agg_mult (array [array [a, b]]) comme ab De innest ('{a, b, c}' :: text []) as a, innest ('{d, e, f}' :: text []) as b;

function zip généralisée

La fonction suivante fournit une approche généralisée de la zip de zipant de zip de tout type:
SELECT array_agg(ARRAY[a, b]) AS ab
FROM unnest('{a,b,c}'::text[]) AS a, unnest('{d,e,f}'::text[]) AS b;
créer ou remplacer ou remplacer le zip de zip (tout type). Renvoie l'ensemble de la langue anarray sql comme $ func $ Sélectionnez array_agg_mult (array [array [a, b]])) De innais (1 $) comme innest1 (a, b) Rejoignez inné (2 $) comme innest2 (a, b) Sur vrai; $ func $;
SELECT array_agg(ARRAY[a, b]) AS ab
FROM unnest('{a,b,c}'::text[]) AS a, unnest('{d,e,f}'::text[]) AS b;
Scénarios d'utilisation

Les exemples présentés dans cet article présentent différents scénarios pour combiner les tableaux:

SELECT array_agg(ARRAY[a, b]) AS ab
FROM unnest('{a,b,c}'::text[]) AS a, unnest('{d,e,f}'::text[]) AS b;
Zipping simple:

combinant des tableaux dans un ensemble de paires d'éléments (dimension simple: output).

ziping multidimensionnel:
    combinant des tableaux en un tableau à 2 dimensions. Fournit plusieurs options pour combiner les tableaux, selon la version et le format de sortie souhaité. Cet article a couvert de manière approfondie les approches disponibles, vous permettant de sélectionner la méthode la plus appropriée pour vos besoins spécifiques.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3