判断ARRAY数组a和b是否存在相同元素。
命令格式
boolean arrays_overlap(array<T> <a>, array<T> <b>)
参数说明
a、b:必填。ARRAY数组。array<T>
中的T
指代ARRAY数组元素的数据类型,数组中的元素可以为任意类型。a和b中元素的数据类型必须一致。
数组中的元素可以为如下类型:
TINYINT、SMALLINT、INT、BIGINT
FLOAT、DOUBLE
BOOLEAN
DECIMAL、DECIMALVAL
DATE、DATETIME、TIMESTAMP、IntervalDayTime、IntervalYearMonth
STRING、BINARY、VARCHAR、CHAR
ARRAY、STRUCT、MAP
返回值说明
返回BOOLEAN类型。返回规则如下:
如果ARRAY数组a中至少包含ARRAY数组b中的一个非NULL元素,返回结果为True。
如果ARRAY数组a和b中没有公共元素、都非空,且其中任意一个数组中包含NULL元素,返回结果为NULL。
如果ARRAY数组a和b中没有公共元素、都非空,且其中任意一个数组中都不包含NULL元素,返回结果为False。
使用示例
示例1:判断ARRAY数组
array(1, 2, 3)
和array(3, 4, 5)
中是否存在相同元素。命令示例如下。--返回true。 select arrays_overlap(array(1, 2, 3), array(3, 4, 5));
示例2:判断ARRAY数组
array(1, 2, 3)
和array(6, 4, 5)
中是否存在相同元素。命令示例如下。--返回false。 select arrays_overlap(array(1, 2, 3), array(6, 4, 5));
示例3:任一ARRAY数组中存在NULL元素。命令示例如下。
--返回NULL。 select arrays_overlap(array(1, 2, 3), array(5, 4, null));
相关函数
ARRAYS_OVERLAP函数属于复杂类型函数,更多对复杂类型数据(例如ARRAY、MAP、STRUCT、JSON数据)的处理函数请参见复杂类型函数。