我有以下查询:
SELECT
col1,
case when array_contains(col1, "c") then "c exists" end as col2
FROM
(
SELECT
*
FROM
(
SELECT
array("a","b","c") AS col1
) q1
) q2;
我想检查元素“c”是否出现在数组中元素“b”之前。在 JavaScript 中我可以使用indexOf()
,所以如果在 HiveQL 中有类似的东西,我会做类似的事情case when col1.indexOf("b") = col1.indexOf("c") - 1
。
我已经阅读了文档,似乎处理数组的函数很少。
我不想拆分数组并使用LAG
or检查LEAD
。
我试过了,field("c", concat_ws(',',col1))
但这似乎也不起作用。