我正在使用 Presto,并且有两列。
A 列是一个 json 数组,看起来像 ["apple", "banana", "cherry"]
B 列是字符串值“cherry”
我想做的就是在 A 列的数组中查找 B 列,如果找到匹配则获取索引。
我在 Presto 文档中找不到可以轻松完成此操作的函数。
我尝试了 json_array_find、position_at、element_at 以及这些函数的不同组合,但它们要么与 presto 不兼容,要么返回 0 或 null。
您可以将
element_at
功能与 array_position
功能一起使用。
SELECT array_position(CAST(json_parse(column_a) AS array<varchar>), column_b) - 1 AS match_index
FROM your_table;
如果找到匹配项,此查询应返回索引(从 0 开始);如果没有匹配项,则返回
-1
。