如何从 presto 中的 json 数组中获取元素的索引(位置)?

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

我正在使用 Presto,并且有两列。

A 列是一个 json 数组,看起来像 ["apple", "banana", "cherry"]

B 列是字符串值“cherry”

我想做的就是在 A 列的数组中查找 B 列,如果找到匹配则获取索引。

我在 Presto 文档中找不到可以轻松完成此操作的函数。

我尝试了 json_array_find、position_at、element_at 以及这些函数的不同组合,但它们要么与 presto 不兼容,要么返回 0 或 null。

presto
1个回答
0
投票

您可以将

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

© www.soinside.com 2019 - 2024. All rights reserved.