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

Redshift中Super类型字段转字符串及提取JSON值求助

解决方案:从Redshift Super类型字段提取JSON属性值

你的Super字段存储的是JSON数组[{"Title":"First Last"}],不需要用json_parse(这个函数是把字符串转成Super类型,而你的字段已经是Super类型,所以会报错),直接通过Super类型的导航语法提取即可,步骤如下:

  1. 开启大小写敏感标识符(适配首字母大写的Title键名)
    执行语句开启大小写敏感:

    SET enable_case_sensitive_identifier = TRUE;
    
  2. 直接导航提取目标值
    先通过[0]获取数组的第一个元素,再通过.Title访问对应属性值:

    SELECT mycolumn[0]."Title"
    FROM mytable;
    
  3. 重置大小写敏感设置(可选)
    操作完成后可重置回默认设置:

    RESET enable_case_sensitive_identifier;
    

替代方案(无需修改全局大小写设置)

如果不想调整全局配置,也可以用json_extract_path_text结合json_serialize提取:

SELECT json_extract_path_text(json_serialize(mycolumn[0]), 'Title')
FROM mytable;

关于之前转换为空的说明

直接CAST(mycolumn AS VARCHAR)返回空是因为Redshift的Super类型不能直接转成VARCHAR,需要先用json_serialize将Super序列化为JSON字符串:

SELECT json_serialize(mycolumn) FROM mytable;

这会返回完整的JSON字符串[{"Title":"First Last"}],但直接导航Super类型是提取值的更高效方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 01:17:18