Comment utiliser ROW_NUMBER() pour la pagination dans SQL Server 2008
La pagination, une technique permettant de diviser de grands ensembles de résultats en pages gérables, est essentiel pour une récupération efficace des données. SQL Server 2008 propose plusieurs méthodes de pagination, dont l'une utilise la fonction ROW_NUMBER().
Fonction ROW_NUMBER()
ROW_NUMBER() est une fonction de fenêtre qui génère un numéro séquentiel unique pour chaque ligne d'un jeu de résultats, basé sur un tri.
Syntaxe :
ROW_NUMBER() OVER (PARTITION BY partition_expression ORDER BY order_expression)
Utilisation pour la pagination
Pour utiliser ROW_NUMBER() pour la pagination, vous pouvez créer une expression de table commune (CTE) comme suit :
WITH CTEResults AS ( SELECT IDColumn, SomeField, DateField, ROW_NUMBER() OVER (ORDER BY DateField) AS RowNum FROM MyTable )
Ce CTE attribue un numéro séquentiel (RowNum) à chaque ligne de MyTable, classé par le DateField.
Pour récupérer une page spécifique, vous pouvez ensuite filtrer le CTE :
SELECT * FROM CTEResults WHERE RowNum BETWEEN @PageNumber * @PageSize AND (@PageNumber + 1) * @PageSize;
Dans cette requête, @PageNumber représente le numéro de page souhaité, et @PageSize est le nombre de lignes par page. Par exemple, pour récupérer la deuxième page de 10 lignes chacune, vous utiliserez :
SELECT * FROM CTEResults WHERE RowNum BETWEEN 10 AND 20;
Avantages de l'utilisation de ROW_NUMBER()
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!