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

RedShift解析字符串型JSON数组拆行报错如何解决?

RedShift JSON字符串数组拆分解决方案

核心思路

先通过子查询/CTE将字符串类型的inputs字段转换为SUPER类型,再对SUPER类型的JSON数组做拆分行操作,避开同查询层级字段引用限制。

可直接运行的查询语句

WITH parsed_data AS (
    SELECT 
        *,
        JSON_PARSE(inputs) AS inputs_super
    FROM source.table
    -- 可选:过滤无效JSON行,避免解析报错
    -- WHERE JSON_VALID(inputs) = TRUE
)
SELECT 
    c.*,
    d.desc,
    d.name,
    d.values
FROM parsed_data AS c, c.inputs_super AS d;

如果偏好子查询写法,也可以使用以下等价语句:

SELECT 
    c.*,
    d.desc,
    d.name,
    d.values
FROM (
    SELECT 
        *,
        JSON_PARSE(inputs) AS inputs_super
    FROM source.table
) AS c, c.inputs_super AS d;

之前报错的原因说明

  • 报错navigation on column "inputs" is not allowed as it is not SUPER type:只有SUPER类型的JSON结构支持直接导航拆分,字符串类型的JSON需要先通过JSON_PARSE转换为SUPER类型。
  • 报错function expression in FROM may not refer to other relations of same query level:RedShift不允许在FROM子句的关联逻辑中直接使用依赖同查询层级其他表字段的函数结果,因此必须先在子查询/CTE中完成类型转换,再做数组拆分。

内容的提问来源于stack exchange,提问作者Viktor Andriichuk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:45:03