> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firebolt.io/llms.txt
> Use this file to discover all available pages before exploring further.

> Reference material for ARRAY_SORT function

# ARRAY_SORT

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:

```sql theme={"theme":{"light":"github-light","dark":"github-dark"}}
-- 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

## Example

```sql theme={"theme":{"light":"github-light","dark":"github-dark"}}
SELECT
	ARRAY_SORT([ 4, 1, 3, 2 ]);
```

**Returns**: `[1,2,3,4]`

In this example below, 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.

```sql theme={"theme":{"light":"github-light","dark":"github-dark"}}
SELECT
	ARRAY_SORT(x -> x % 2, [ 4, 1, 3, 2 ]);
```

**Returns**: `[4,2,1,3]`

In this example below, we pass in two array arguments. Therefore, we must pass in a lambda as the first argument and the lambda must have two parameters.

```sql theme={"theme":{"light":"github-light","dark":"github-dark"}}
SELECT
	ARRAY_SORT(x, y -> y, [1, 2, 3], ['c', 'b', 'a']);
```

**Returns**: `[3,2,1]`
