# START

The `START` clause is used to set the point at which to return results of a query

The `START` clause is used to set the index at which to start returning results of a query, with 0 as the starting point.

This simple query demonstrates how adding `START 2` will skip over the numbers 1 and 2, returning the output `[3, 4, 5]`.

```surql
SELECT * FROM 1, 2, 3, 4, 5 START 2;
```

This clause is most often paired with `LIMIT` to perform pagination, to avoid sending messages that exceed a certain size to other pieces of software, and so on.

The following pseudocode demonstrates the most common pattern seen when `START` and `LIMIT` are used together.

```rust
let current = 0;
loop {
    let query = db.query(SELECT * FROM person START {current} LIMIT 100);
    if query.is_empty() {
        break;
    } else {
        query.send_to_app();
        current += 100;
    }
}
```
