hive ARRAY_CONTAINS
判断array中是否包含某个值,包含返回true,不包含返回false
SELECT ARRAY_CONTAINS(SPLIT(c1,','), 'a') AS c1
,ARRAY_CONTAINS(SPLIT(c1,','), 'b') AS c2
,ARRAY_CONTAINS(SPLIT(c1,','), 'c') AS c3
,ARRAY_CONTAINS(SPLIT(c1,','), 'd') AS c4
,CASE WHEN ARRAY_CONTAINS(SPLIT(c1,','), 'd') THEN 1
ELSE 0
END AS c5
FROM (
SELECT 'a,b,c' AS c1
UNION ALL
SELECT 'a,c' AS c1
UNION ALL
SELECT 'a,c,d,c' AS c1
) t
;
-- 输出结果
c1 c2 c3 c4 c5
true true true false 0
true false true false 0
true false true true 1