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

Redshift中基于SUPER类型数组的表连接简洁实现方法问询

Redshift SUPER类型JSON数组表连接的简洁实现

方法1:转换为标准数组后使用ANY

Redshift的json_array_to_array函数可将SUPER类型的JSON数组转换为SQL标准数组,这样就能沿用你期望的= ANY()语法:

SELECT f."country", lu."group"
FROM test.fact f
INNER JOIN test.country_lookup lu
  ON f."country" = ANY(json_array_to_array(lu."country".list))

方法2:使用contains函数直接判断

利用Redshift内置的contains函数,直接检查目标值是否存在于SUPER数组中,写法更直观简洁:

SELECT f."country", lu."group"
FROM test.fact f
INNER JOIN test.country_lookup lu
  ON contains(lu."country".list, f."country")

原错误原因

你遇到的ERROR: op ANY/ALL (array) requires array on right side错误,是因为lu."country".list是SUPER类型的JSON数组,并非PostgreSQL兼容的标准SQL数组,而ANY操作符仅支持右侧为标准数组类型,因此直接使用会触发报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 06:33:30