T-SQL Tutorial

SQL Server OFFSET and FETCH


In SQL Server, the OFFSET and FETCH clauses are used together to limit the number of rows returned by a query. These clauses are typically used in conjunction with the SELECT statement, and they allow you to specify the starting point and the number of rows to return.

The OFFSET clause specifies the number of rows to skip before starting to return data. For example, if you specify OFFSET 5, the query will skip the first 5 rows and start returning data from the 6th row onwards. The OFFSET clause is typically used in combination with the FETCH clause, which specifies the number of rows to return.

These clauses are particularly useful when working with large tables, as they allow you to retrieve a subset of the data without having to load the entire table.


Example

Here's an example of using OFFSET and FETCH to return a specific range of rows from a table:

SELECT *
FROM my_table
ORDER BY id
OFFSET 10 ROWS
FETCH NEXT 20 ROWS ONLY;

In this example, the query will skip the first 10 rows of the table (as specified by OFFSET 10 ROWS) and then return the next 20 rows (as specified by FETCH NEXT 20 ROWS ONLY). The results will be sorted by the id column, as specified by the ORDER BY clause.

In conclusion, the OFFSET and FETCH clauses are powerful tools for limiting the number of rows returned by a query in SQL Server. They allow you to retrieve a subset of the data without having to load the entire table, which can be particularly useful when working with large tables.