Maison >base de données >tutoriel mysql >Comment implémenter une pagination personnalisée dans SQL Server à l'aide de OFFSET/FETCH et ROW_NUMBER() ?
Pagination personnalisée SQL Server : méthodes OFFSET/FETCH et ROW_NUMBER()
La pagination SQL est utilisée pour récupérer un nombre limité d'enregistrements à partir d'un ensemble de données et est généralement utilisée pour afficher les résultats dans des pages sur une interface utilisateur. L'objectif de cet article est d'implémenter la fonctionnalité de pagination pour une requête qui récupère les publications et leurs dernières entrées.
SQL Server 2012 et versions ultérieures peuvent utiliser les mots-clés OFFSET
et FETCH NEXT
pour implémenter la pagination. La requête suivante montre comment utiliser ces mots-clés pour la pagination :
<code class="language-sql">SELECT PostId FROM ( SELECT PostId, MAX(Datemade) AS LastDate FROM dbForumEntry GROUP BY PostId ) AS SubQueryAlias ORDER BY LastDate DESC OFFSET 10 ROWS -- 跳过10行 FETCH NEXT 10 ROWS ONLY; -- 获取接下来的10行</code>
Pour les versions antérieures à SQL Server 2012, une approche différente est requise. Une solution consiste à utiliser la fonction ROW_NUMBER()
pour attribuer un numéro de ligne à un enregistrement, puis à utiliser la clause WHERE
pour filtrer les lignes souhaitées :
<code class="language-sql">DECLARE @Start INT, @End INT; SELECT @Start = 10, @End = 20; WITH PostCTE AS ( SELECT PostId, MAX(Datemade) AS LastDate, ROW_NUMBER() OVER (ORDER BY PostId) AS RowNumber FROM dbForumEntry GROUP BY PostId ) SELECT PostId, LastDate FROM PostCTE WHERE RowNumber BETWEEN @Start AND @End; -- 获取第10到20行</code>
Cette approche fournit un moyen d'implémenter la pagination pour les versions antérieures de SQL Server, vous permettant de contrôler le nombre d'enregistrements affichés et de faciliter la navigation dans de grands ensembles de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!