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

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

Susan Sarandon
發布: 2025-01-04 19:02:40
原創
926 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板