You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL如何将JSONB数组的数组转换为PG数组的数组?

将JSONB数组转换为PostgreSQL数组的数组

针对你的需求,可以通过拆分JSONB数组、提取元素构造PG数组再聚合的方式实现,具体SQL语句如下:

SELECT array_agg(ARRAY[item->>0, item->>1]) AS pg_array
FROM products, jsonb_array_elements("options") AS item;

语句说明:

  • jsonb_array_elements("options"):将外层JSONB数组拆分为单个的JSONB内层数组元素,用别名item指代。
  • ARRAY[item->>0, item->>1]:从每个JSONB内层数组中提取第1、第2个元素(索引从0开始),构造为text类型的一维数组。
  • array_agg(...):将所有一维数组聚合为一个二维PG数组,即你需要的ARRAY[ARRAY['black', '2'], ARRAY['white', '7']]格式。

如果JSONB内层数组长度不固定,可使用PostgreSQL 12+支持的jsonb_to_text_array函数实现通用转换:

SELECT array_agg(jsonb_to_text_array(item)) AS pg_array
FROM products, jsonb_array_elements("options") AS item;

内容的提问来源于stack exchange,提问作者Alex Poloz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 12:03:14