我正在使用 postgresql,我试图将具有单个值的数组列分成不同的列。名为
fee_rule_id
的原始列类似于 [98, 120, 133]。我希望它是第1列98,第2列120第3列133。
我正在使用 unnest 函数,但收到错误代码 42883。提示:没有函数与给定名称和参数类型匹配。您可能需要添加显式类型转换。
我该如何解决这个问题?
我的查询就像
选择ID , 修改的 ,unnest(fee_rule_id) 作为fee_id 来自最终数据
您可以通过将数组转换为
JSONB
来实现此目的,然后使用 JSONB
索引和类型转换将每个元素提取到单独的列中。希望这有帮助>>
SELECT
id,
modified,
(fee_rule_id->>0)::int AS column1,
(fee_rule_id->>1)::int AS column2,
(fee_rule_id->>2)::int AS column3
FROM (
SELECT
id,
modified,
fee_rule_id::jsonb AS fee_rule_id
FROM
final_data
) subquery;