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 BY
là bắt buộc để sử dụngOFFSET ... FETCH
mệnh đề. -
OFFSET
mệnh đề bắt buộc vớiFETCH
. Bạn không thể sử dụngORDER BY ... FETCH
. -
TOP
không thể kết hợp vớiOFFSET
vàFETCH
trong cùng một biểu thức truy vấn.