Od wersji SQL 2012 ORDER BY zostało powiększone o klauzulę OFFSET. Pozwala ono stronicować dane sortowane w okręlsonym porządku. Zobacz następujący przykład:
USE TEMPDB CREATE TABLE TestNumber (ID INT) DECLARE @i INT=0WHILE @i<100
BEGIN
SET @i+=1
INSERT TestNumber VALUES (@i)
END SELECT ID FROM TestNumber
ORDER BY ID
OFFSET 50 ROWS FETCH NEXT 10 ROWS ONLY
W testowej tabelce jest 100 rekordów (liczby ID od 1 do 100). SELECT wyświetli tylko rekordy od 51 do 60:
- OFFSET mówi, że 50 pierwszych rekordów należy pominąć
- FETCH mówi ile tych rekordów należy pobrać.
Element FETCH można pominąć.