Amazon Redshift 中的数组包含

问题描述 投票:0回答:2

我们需要在 Redshift 表中存储一个数组。但Redshift不支持Array类型,所以它可能是JSON数组。 另外,我们需要能够在 SQL 查询中使用这个数组

  1. Redshift 中是否存在类似
    ARRAY_CONTAINS
    的功能?也许有一些解决方法
  2. 在 Redshift 中存储数组或 JSON 数组的最佳列类型是什么?

谢谢

arrays amazon-redshift
2个回答
1
投票

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() 将数组转换为字符串,并在结果字符串中查找元素(用逗号或方括号括起来以确保完全匹配)。


0
投票

取消超级数组的嵌套,然后进行比较:

select * from tbl t, t.supcol.arrfield arrelm where arrelm::int=22
© www.soinside.com 2019 - 2024. All rights reserved.