首頁 >資料庫 >mysql教程 >如何在 PostgreSQL 中壓縮兩個陣列?

如何在 PostgreSQL 中壓縮兩個陣列?

Susan Sarandon
Susan Sarandon原創
2025-01-04 19:02:40898瀏覽

How Can I Zip Two Arrays in PostgreSQL?

PostgreSQL 中的陣列壓縮

在 PostgreSQL 中,可以使用多種方法實現將兩個等長數組組合成對。

版本9.5 和後來:

Postgres 9.5 版引入了具有ROWS FROM 構造的array_agg 函數,它允許直接串聯數組:

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

9.4 及更早版本:

9.5之前,有兩個方法:

簡單壓縮:

對於具有相同元素數量的數組,請使用以下查詢:

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

壓縮對於多維數組:

轉換將數組壓縮為多維數組,請考慮以下自訂聚合函數:

CREATE AGGREGATE array_agg_mult (anyarray) (
   SFUNC    = array_cat
 , STYPE    = anyarray
 , INITCOND = '{}'
);

將此聚合函數與取消巢狀運算一起使用:

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;

以上是如何在 PostgreSQL 中壓縮兩個陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn