全部產品
Search
文件中心

MaxCompute:ALL_MATCH

更新時間:Jun 19, 2024

判斷ARRAY數組a中是否所有元素都滿足predicate條件。

命令格式

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

參數說明

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

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

傳回值說明

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

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

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

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

使用樣本

  • 樣本1:判斷ARRAY數組array(4, 5, 6)的所有元素是否滿足x x > 3條件(所有元素大於3)。命令樣本如下。

    --返回true。
    select all_match(array(4, 5, 6), x -> x>3);
  • 樣本2:ARRAY數組為空白。命令樣本如下。

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

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

    --返回NULL。
    select all_match(array(10, 100, 30, null), x -> x>3);

相關函數

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

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