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
| Parameter | Description | Supported 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