在 Presto Athena 中将字符串转换为数组

Convert String to Array in Presto Athena

我是 SQL 的新人。我正在尝试在 WHERE IN 语句中传递一个列表。但是这些值在类似于这样的字符串中:

'["id1", "id2", "id3", "id4", "id5", "id6"]'

WHERE IN 语句不接受字符串但接受它:

WHERE IN (SELECT ids FROM unnested_id_related.id_related)

我可以使用 UNNEST 语句

得到这个table
CROSS JOIN 
    unnest(ids) AS unnested_id_related (id_related)

但是值 ids 需要是一个 ARRAY。任何人都知道如何将字符串转换为数组?或者在 WHERE IN 语句中传递此字符串的更好方法?

您的数据看起来像 json 数组,因此您可以 parse it 作为一个并转换为字符串数组:

select cast(json_parse('["id1", "id2", "id3", "id4", "id5", "id6"]') as array(varchar))

输出:

_col0
[id1, id2, id3, id4, id5, id6]