全部產品
Search
文件中心

MaxCompute:ARRAYS_OVERLAP

更新時間:Jun 19, 2024

判斷ARRAY數組ab是否存在相同元素。

命令格式

boolean arrays_overlap(array<T> <a>,  array<T> <b>)

參數說明

ab:必填。ARRAY數組。array<T>中的T指代ARRAY數組元素的資料類型,數組中的元素可以為任意類型。ab中元素的資料類型必須一致。

數組中的元素可以為如下類型:

  • 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數組ab中沒有公用元素、都非空,且其中任意一個數組中包含NULL元素,返回結果為NULL。

  • 如果ARRAY數組ab中沒有公用元素、都非空,且其中任意一個數組中都不包含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資料)的處理函數請參見複雜類型函數