PostgreSQL 提供了各種操作數組的方法。一個常見的操作是將兩個長度相等的陣列組合成元素對。本文探討了實現此任務的不同方法,考慮了 PostgreSQL 版本和特定用例。
PostgreSQL 9.5 或更高版本
PostgreSQL 9.5 引入了array_agg(>
PostgreSQL 9.5 引入了array_agg(>將多個數組連接成一個高維數組。此功能簡化了陣列組合任務,無需自訂聚合函數。SELECT array_agg(ARRAY[a, b]) AS ab FROM unnest('{a,b,c}'::text[]) AS a, unnest('{d,e,f}'::text[]) AS b;
PostgreSQL 9.4
在 PostgreSQL 9.5 之前,另一種方法涉及使用 unnest( ) 和 ROWS FROM.SELECT ARRAY[a, b] AS ab FROM unnest('{a,b,c}'::text[], '{d,e,f}'::text[]) AS tmp(a, b);
CREATE OR REPLACE FUNCTION array_agg_mult(anyarray) RETURNS SETOF anyarray LANGUAGE SQL AS $func$ SELECT ARRAY[ARRAY[a, b]] FROM unnest() AS unnest1(a, b); $func$;
SELECT array_agg_mult(ARRAY[ARRAY[a, b]]) AS ab FROM unnest('{a,b,c}'::text[]) AS a, unnest('{d,e,f}'::text[]) AS b;
CREATE OR REPLACE FUNCTION zip(anyarray, anyarray) RETURNS SETOF anyarray LANGUAGE SQL AS $func$ SELECT array_agg_mult(ARRAY[ARRAY[a, b]]) FROM unnest() AS unnest1(a, b) JOIN unnest() AS unnest2(a, b) ON true; $func$;
以上是如何在 PostgreSQL 中組合數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!