Eu tenho tentado entender um pouco sobre como implementar paginação personalizada no SQL, por exemplo, lendo artigos como este .
Eu tenho a seguinte consulta, que funciona perfeitamente. Mas eu gostaria de implementar a paginação com este.
SELECT TOP x PostId FROM ( SELECT PostId, MAX (Datemade) as LastDate
from dbForumEntry
group by PostId ) SubQueryAlias
order by LastDate desc
O que é que eu quero
Tenho postagens no fórum, com entradas relacionadas. Desejo obter as postagens com as entradas adicionadas mais recentes, para que eu possa selecionar as postagens debatidas recentemente.
Agora, quero conseguir as "10 a 20 postagens ativas recentemente", em vez de "as 10 principais".
O que eu tentei
Eu tentei implementar as funções ROW como a do artigo, mas realmente sem sorte.
Alguma idéia de como implementá-lo?
fonte
WHERE RowNumber >= @Start AND RowNumber < @End
deve obter as primeiras 1000 linhas se@Start
for 0 e@End
for 1000?Para fazer isso no SQL Server, você deve solicitar a consulta por uma coluna, para poder especificar as linhas que deseja.
Exemplo:
E você não pode usar a palavra-chave "TOP" ao fazer isso.
Você pode saber mais aqui: https://technet.microsoft.com/pt-br/library/gg699618%28v=sql.110%29.aspx
fonte
use isso no final da sua sintaxe de seleção. =)
fonte
SQL 2008
A resposta de Radim Köhler funciona, mas aqui está uma versão mais curta:
Fonte: https://forums.asp.net/post/4033909.aspx
fonte
Você pode usar a consulta aninhada para paginação da seguinte maneira:
Paginação de 4 linhas para 8 linhas em que CustomerId é a chave primária .
fonte