Skip to main content
  • Returns TRUE if all elements in the array are TRUE or if the array is empty.
  • Returns FALSE if any element in the array is FALSE.
  • Returns NULL if any element is NULL and no element is FALSE.
When an optional lambda function is provided, ARRAY_ALL_MATCH applies the function to each element and then evaluates the resulting array. Alias: ALL_MATCH

Syntax

{ ALL_MATCH | ARRAY_ALL_MATCH }([<expression> -> <condition>], <array> [, <array2>, ...])

Parameters

ParameterDescriptionSupported input types
<expression>A lambda function applied to each element of the input arrays, returning a BOOLEAN. If no lambda function is provided, the function can only evaluate a single BOOLEAN array. For more information, see Manipulating arrays with Lambda functions.Same as the element data types of the input arrays.
<condition>A BOOLEAN expression that evaluates each array value using a comparison operator.See Comparison operators.
<array>The array to evaluate.ARRAY

Return Type

The ARRAY_ALL_MATCH function returns a result of type BOOLEAN.

Examples

Check if all player nicknames end with '2024':
SELECT ARRAY_ALL_MATCH(name -> name like '%2024', [ 'kennethpark2024', 'sabrina2024', 'steven2024']) AS result;
result boolean
True

Rows: 1Execution time: 5.97ms

Check if all elements in the first array can be divided by the elements in the second array:
SELECT ARRAY_ALL_MATCH(x, y -> (x % y) = 0, [ 10, 20, 30, 45 ], [ 5, 10, 2, 15]) AS divisible;
divisible boolean
True

Rows: 1Execution time: 5.71ms

Check if all elements in an input array are true:
SELECT ARRAY_ALL_MATCH([]) AS empty, ARRAY_ALL_MATCH([true]) AS single_true, ARRAY_ALL_MATCH([false]) AS single_false, ARRAY_ALL_MATCH([NULL]) AS single_null, ARRAY_ALL_MATCH([false, NULL]) AS false_and_null;
empty booleansingle_true booleansingle_false booleansingle_null boolean nullfalse_and_null boolean null
TrueTrueFalseNULLFalse

Rows: 1Execution time: 6.37ms