全部產品
Search
文件中心

MaxCompute:ANY_MATCH

更新時間:Jun 19, 2024

判斷ARRAY數組a中是否存在元素滿足predicate條件。

命令格式

boolean any_match(array<T> <a>, function<T, boolean> <predicate>)

參數說明

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

  • predicate:必填。用於對ARRAY數組a中的元素進行判斷的函數(內建函數或自訂函數)或運算式。輸入參數的資料類型必須與ARRAY數組a中元素的資料類型一致。

傳回值說明

返回BOOLEAN類型。返回規則如下:

  • 如果ARRAY數組a中存在一個或多個元素滿足predicate條件,返回結果為True。

  • 如果ARRAY數組a中沒有元素滿足predicate條件或ARRAY數組為空白,返回結果為False。

  • 如果ARRAY數組a中存在元素為NULL,且其他元素都不滿足predicate條件,返回結果為NULL。

使用樣本

  • 樣本1:判斷ARRAY數組array(1, 2, -10, 100, -30)中是否有元素滿足xx > 3條件。命令樣本如下。

    --返回true。
    select any_match(array(1, 2, -10, 100, -30), x-> x > 3);
  • 樣本2:ARRAY數組為空白。命令樣本如下。

    --返回false。
    select any_match(array(), x-> x > 3);
  • 樣本3:判斷ARRAY數組array(1, 2, -10, -20, -30)中是否有元素滿足x-> x > 3條件。命令樣本如下。

    --返回false。
    select any_match(array(1, 2, -10, -20, -30), x-> x > 3);
  • 樣本4:判斷存在NULL元素的ARRAY數組array(1, 2, null, -10)中是否有元素滿足x-> x > 3條件。命令樣本如下。

    --返回NULL。
    select any_match(array(1, 2, null, -10), x-> x > 3);

相關函數

  • ANY_MATCH函數屬於複雜類型函數,更多對複雜類型資料(例如ARRAY、MAP、STRUCT、JSON資料)的處理函數請參見複雜類型函數

  • ANY_MATCH函數使用樣本中涉及->的使用,關於Lambda函數->的介紹,詳情請參見Lambda函數