Uma das vantagens do MySQL em relação ao MS SQL Server é a cláusula LIMIT, muito útil em paginação de resultados já que permite pegar somente uma faixa de resultados, como em:
select * from tabela limit 10,10
Ele retorna os próximos 10 resultados começando pelo décimo resultado. Ou seja, numa paginação de 10 ítens, essa seria a query da segunda página.
Até o SQL Server 2000 era inviável fazer algo semelhante com muitos registros sem derrubar o servidor. Agora, uma das bem-vindas novidades do SQL Server 2005 é a função ROW_NUMBER(), que permite fazer algo como o LIMIT com uma boa performance.
with paginacao as
(
select row_number() over (order by id) as ‘rownumber’, *
from tabela
)
select * from paginacao
where rownumber between 10 and 20
Explicação simples, mas precisa.
Testado e 100% aprovado!!! Parabéns, direto ao ponto com simplicidade no código 🙂