Til sidst, Microsoft SQL Server 2012 blev udgivet, kan jeg virkelig godt lide dens enkelhed for en paginering, du behøver ikke at bruge komplekse forespørgsler som besvaret her.
For at få de næste 10 rækker skal du bare køre denne forespørgsel:
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- returneret
Nøglepunkter at overveje, når du bruger det:
ORDER BY
er obligatorisk at brugeOFFSET ... FETCH
klausul.OFFSET
klausul er obligatorisk medFETCH
. Du kan ikke brugeORDER BY ... FETCH
.TOP
kan ikke kombineres medOFFSET
ogFETCH
i det samme forespørgselsudtryk.