Cuối cùng, Microsoft SQL Server 2012 đã được phát hành, tôi thực sự thích sự đơn giản của nó cho một phân trang, bạn không cần phải sử dụng các truy vấn phức tạp như đã trả lời ở đây.
Để nhận được 10 hàng tiếp theo, chỉ cần chạy truy vấn sau:
SELECT * FROM TableName ORDER BY id OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY;
https://docs.microsoft.com/en-us/sql/t-sql/queries/select-order-by-clause-transact-sql#using-offset-and-fetch-to-limit-the-rows- trả lại
Những điểm chính cần cân nhắc khi sử dụng:
-
ORDER BYlà bắt buộc để sử dụngOFFSET ... FETCHmệnh đề. -
OFFSETmệnh đề bắt buộc vớiFETCH. Bạn không thể sử dụngORDER BY ... FETCH. -
TOPkhông thể kết hợp vớiOFFSETvàFETCHtrong cùng một biểu thức truy vấn.