判斷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資料)的處理函數請參見複雜類型函數。