Praktycznie wszystkie implementacje bazy danych SQL mają sposób na określenie początkowego wiersz do zwrócenia, a także liczba rzędów.
Na przykład zarówno w mysql, jak i postgresie wygląda to tak:
SELECT ...
ORDER BY something -- not required, but highly recommended
LIMIT 100 -- only get 100 rows
OFFSET 500; -- start at row 500
Zwróć uwagę, że normalnie dodasz ORDER BY
aby upewnić się, że twoje kawałki są spójne
MS SQL Server (będący „udaną” bazą danych) nie obsługuje bezpośrednio OFFSET, ale można go zakodować za pomocą ROW_NUMBER()
- zobacz ten post SO
po więcej szczegółów.