判断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);