SQL 错误 [42883]:错误:函数 unnest(jsonb) 不存在

问题描述 投票:0回答:1

我正在使用 postgresql,我试图将具有单个值的数组列分成不同的列。名为

fee_rule_id 
的原始列类似于 [98, 120, 133]。我希望它是第1列98,第2列120第3列133。

我正在使用 unnest 函数,但收到错误代码 42883。提示:没有函数与给定名称和参数类型匹配。您可能需要添加显式类型转换。

我该如何解决这个问题?

我的查询就像

选择ID , 修改的 ,unnest(fee_rule_id) 作为fee_id 来自最终数据

arrays postgresql extract unnest
1个回答
0
投票

您可以通过将数组转换为

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;
© www.soinside.com 2019 - 2024. All rights reserved.