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

如何在Redshift视图创建中将对象转换为Super类型

在Redshift视图中转换为Super类型的方法

Redshift里不能直接用CAST((SELECT 3,4) AS SUPER)这种写法,因为子查询返回的是关系型行数据,没法直接转成Super类型。要构造Super类型,得借助JSON相关函数生成符合要求的结构,以下是具体实现方式:

1. 构造单个Super对象

如果要把多个值包装成一个Super对象,用json_object函数直接生成,然后在视图中使用:

CREATE VIEW my_super_view AS
SELECT 
  1 AS col1,
  2 AS col2,
  -- 生成包含key1=3、key2=4的Super对象
  json_object('key1': 3, 'key2': 4) AS super_col;

2. 构造Super数组

如果要把子查询的多行结果转成Super数组,用json_agg配合json_object来实现:

CREATE VIEW my_super_array_view AS
SELECT 
  1 AS col1,
  2 AS col2,
  -- 将子查询的3、4转成Super数组
  (SELECT json_agg(json_object('value': num)) FROM (SELECT 3 UNION SELECT 4) t(num)) AS super_array_col;

关键说明

Redshift的Super类型本质是兼容JSON的半结构化类型,所有能生成JSON结构的函数(比如json_object、json_agg、json_parse)返回的结果都是Super类型,直接在视图的字段定义中使用这些表达式即可完成转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 11:02:01