Извлечение диапазона строк



Оператор TOP

Оператор TOP позволяет выбрать определенное количество строк из таблицы:

1
2
SELECT TOP 4 ProductName
FROM Products

SELECT TOP в T-SQL

Дополнительный оператор PERCENT позволяет выбрать процентное количество строк из таблицы. Например, выберем 75% строк:

1
2
SELECT TOP 75 PERCENT ProductName
FROM Products

OFFSET и FETCH

Оператор TOP позволяет извлечь определенное количество строк, начиная с начала таблицы. Для извлечения набора строк из любого места, применяются операторы OFFSET и FETCH. Важно, что эти операторы применяются только в отсортированном наборе данных после выражения ORDER BY.

1
2
3
ORDER BY выражение
    OFFSET смещение_относительно_начала {ROW|ROWS}
    [FETCH {FIRST|NEXT} количество_извлекаемых_строк {ROW|ROWS} ONLY]

Например, выберем все строки, начиная с третьей:

1
2
3
SELECT * FROM Products
ORDER BY Id
    OFFSET 2 ROWS;

Число после ключевого слова OFFSET указывает, сколько строк необходимо пропустить.

ORDER BY и OFFSET в T-SQL

Теперь выберем только три строки, начиная с третьей:

1
2
3
4
SELECT * FROM Products
ORDER BY Id
    OFFSET 2 ROWS
    FETCH NEXT 3 ROWS ONLY;

После оператора FETCH указывается ключевое слово FIRST или NEXT (какое именно в данном случае не имеет значения) и затем указывается количество строк, которое надо получить.

OFFSET и FETCH в T-SQL и постраничная навигация

Данная комбинация операторов, как правило, используется для постраничной навигации, когда необходимо получить определенную страницу с данными.