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

如何通过另一列的键访问Redshift的Super类型列?

Redshift Super类型列通过动态键访问的方法

是的,你可以直接通过Super字段完成动态键的访问,不需要先序列化再用JSON函数处理。Redshift的Super类型支持方括号[]语法来动态引用来自另一列的键,替代你尝试的super_field.{super_key}写法。

正确的SQL示例

with temp as (select json_parse('{"aaa":{"1":2}}') as super_field,
                     'aaa'::text                   as super_key)
select super_field,
       super_key,
       json_extract_path_text(json_serialize(super_field), super_key) as extracted_text_old,
       super_field[super_key] as extracted_text_new -- 直接用方括号访问动态键
from temp;

说明

  • 对于Super类型的静态键,你可以用.语法(比如super_field.aaa);
  • 当键来自另一列的变量时,必须使用[]语法,将键列作为参数传入方括号中,这样就能直接从Super对象中提取对应的值,而且性能比序列化后再处理更优,因为减少了JSON格式转换的额外开销。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:20:49