# BSON\_ARRAY\_SLICE

Slices the input array and returns a subset.

This function returns the specified number of elements from a BSON array starting from a specified position in the array (zero-based index).

## Syntax

```
BSON_ARRAY_SLICE(<input>, <position>, <n>)
```

## Arguments

* `<input>`: A valid BSON array or an expression that evaluates to a valid BSON array.
* `<position>`: An integer or an expression that evaluates to an integer. It specifies the index at which the array slicing starts. A positive value indicates the start of an array, and a negative value indicates that the starting position is calculated from the end of an array (in reverse order).
* `<n>`: An integer or an expression that evaluates to an integer. It specifies the number of array items to return.

## Return Type

A BSON array.

## Remarks

* If the specified `<position>` is a positive integer that exceeds the bounds of an array, returns an empty array.
* If the specified `<position>` is a negative integer that exceeds the bounds of an array, slicing starts at the `0` index, the starting position in the array.
* `BSON_ARRAY_SLICE()` returns `NULL` if:

  * `<input>` is SQL `NULL`, BSON `NULL`, or BSON `undefined`.
  * `<n>` is SQL `NULL`, BSON `NULL`, or BSON `undefined`.

## Examples

**Note**: The following examples explicitly cast string to BSON for clarity. Similarly, the output is cast to JSON.

The following example returns 3 elements from the array starting at `0` index.

```sql
SELECT BSON_ARRAY_SLICE('[0,1,2,3,4,5]':>BSON, 0,3):>JSON AS Result;

```

```output

+---------+
| Result  |
+---------+
| [0,1,2] |
+---------+
```

The following example returns 3 elements from the array starting from the third element at the end.

```sql
SELECT BSON_ARRAY_SLICE('[0,1,2,3,4,5]':>BSON, -3,3):>JSON AS Result;

```

```output

+---------+
| Result  |
+---------+
| [3,4,5] |
+---------+
```

The following example returns an empty array because the specified index is positive and out of array bounds.

```sql
SELECT BSON_ARRAY_SLICE('[0,1,2,3,4,5]':>BSON, 10,3):>JSON AS Result;

```

```output

+--------+
| Result |
+--------+
| []     |
+--------+
```

The following example returns the first three elements of the array because the specified index is negative and out of array bounds.

```sql
SELECT BSON_ARRAY_SLICE('[0,1,2,3,4,5]':>BSON, -6,3):>JSON AS Result;

```

```output

+---------+
| Result  |
+---------+
| [0,1,2] |
+---------+
```

***

Modified at: May 8, 2024

Source: [/db/v9.1/reference/sql-reference/bson-functions/bson-array-slice/](https://docs.singlestore.com/db/v9.1/reference/sql-reference/bson-functions/bson-array-slice/)

(An index of the documentation is available at /llms.txt)
