Skip to main content
Returns the elements of the input array in ascending order. If the argument <function> is provided, the sort order is determined by the result of applying <function> on each element of the array.

Syntax

ARRAY_SORT supports two signatures:
-- One array argument:
ARRAY_SORT(<array>)

-- One function and one or multiple array arguments:
ARRAY_SORT(<function>, <array> [, ...])

Parameters

ParameterDescriptionSupported input type
<function>An optional function used to determine the sort order.Any lambda function that takes the elements of <array> as input
<array>The array to be sorted.Any array

Return Type

ARRAY of the same type as the input array

Examples

SELECT ARRAY_SORT([4, 1, 3, 2]);
array_sort array(int)
[1, 2, 3, 4]

Rows: 1Execution time: 5.52ms

In this example, the modulus operator is used to calculate the remainder on any odd numbers. Therefore ARRAY_SORT puts the higher (odd) numbers last in the results.
SELECT ARRAY_SORT(x -> x % 2, [4, 1, 3, 2]);
array_sort array(int)
[4, 2, 1, 3]

Rows: 1Execution time: 5.54ms

In this example, two array arguments are passed in. Therefore, a lambda with two parameters must be used as the first argument.
SELECT ARRAY_SORT(x, y -> y, [1, 2, 3], ['c', 'b', 'a']);
array_sort array(int)
[3, 2, 1]

Rows: 1Execution time: 5.28ms