ARRAY_CONTAINS

判断ARRAY数组a中是否存在元素v

命令格式

boolean array_contains(array<T> <a>, value <v>)

参数说明

  • a:必填。ARRAY数组。array<T>中的T指代ARRAY数组元素的数据类型,数组中的元素可以为任意类型。

  • v:必填。待判断的元素。必须与ARRAY数组a中元素的数据类型一致。

返回值说明

返回BOOLEAN类型。

使用示例

例如表t_table_array的字段为c1 bigint, t_array array<string>,包含数据如下:

+------------+---------+
| c1         | t_array |
+------------+---------+
| 1000       | [k11, 86, k21, 15] |
| 1001       | [k12, 97, k22, 2] |
| 1002       | [k13, 99, k23, 1] |
+------------+---------+

命令示例如下。

--检测t_array列是否包含1。
select c1, array_contains(t_array,'1') from t_table_array;
--返回结果如下。
+------------+------+
| c1         | _c1  |
+------------+------+
| 1000       | false |
| 1001       | false |
| 1002       | true |
+------------+------+

相关函数

ARRAY_CONTAINS函数属于复杂类型函数,更多对复杂类型数据(例如ARRAY、MAP、STRUCT、JSON数据)的处理函数请参见复杂类型函数