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);
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;
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 = '{}' );
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;
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!