我们需要在 Redshift 表中存储一个数组。但Redshift不支持Array类型,所以它可能是JSON数组。 另外,我们需要能够在 SQL 查询中使用这个数组
ARRAY_CONTAINS
的功能?也许有一些解决方法谢谢
Redshift 可以将数组数据存储为 SUPER 数据类型。 您可以在此处了解如何使用此数据类型 - https://docs.aws.amazon.com/redshift/latest/dg/super-overview.html
我不相信有“array_contains”等效项,可以在这里找到超级函数的完整列表 - https://docs.aws.amazon.com/redshift/latest/dg/c_Type_Info_Functions.html
作为解决方法,我建议使用 json_serialize() 将数组转换为字符串,并在结果字符串中查找元素(用逗号或方括号括起来以确保完全匹配)。
取消超级数组的嵌套,然后进行比较:
select * from tbl t, t.supcol.arrfield arrelm where arrelm::int=22