Qu’est-ce que la pagination ?

La pagination est le processus de division de données volumineuses en ensembles de données plus petits dans des pages discrètes. Il est largement utilisé dans les applications Web.

Comment fonctionne la pagination dans MS SQL Server ?

Dans MS SQL Servernous pouvons réaliser la fonctionnalité de pagination en utilisant OFFSET et FETCH clauses avec ORDER BY dans SELECT déclaration.

  • OFFSET: Représente le nombre de lignes à ignorer du jeu de résultats. Il doit être égal ou supérieur à 0.
  • FETCH: Représente le nombre de lignes à afficher dans le résultat.

Points importants à considérer lors de l’utilisation OFFSET et FETCH:

  • ORDER BY est obligatoire à l’utilisation OFFSET FETCH Clause.
  • OFFSET est obligatoire et FETCH est facultatif.
  • TOP clause ne peut pas être utilisée dans SELECT déclaration avec OFFSET FETCH.

Voyons des exemples :

Dans l’exemple ci-dessous, OFFSET 0 et FETCH NEXT 5 ROWS n’ignorez aucune ligne et renvoyez les 5 lignes suivantes dans l’ensemble de données, dont les 5 premières lignes dans l’ensemble de données.

SELECT EmployeeKey,FirstName,LastName,Title,EmailAddress,
Phone,EmergencyContactName,DepartmentName
FROM dbo.DimEmployee WITH(NOLOCK)
ORDER BY EmployeeKey 
OFFSET 0 ROWS
FETCH NEXT 5 ROWS ONLY

OFFSET 0 et FETCH NEXT 5 ROWS

Dans l’exemple ci-dessous, OFFSET 3 et FETCH NEXT 5 ROWS signifie ignorer les 3 premières lignes et renvoyer les 5 lignes suivantes dans l’ensemble de données.

SELECT EmployeeKey,FirstName,LastName,Title,EmailAddress,
Phone,EmergencyContactName,DepartmentName
FROM dbo.DimEmployee WITH(NOLOCK)
ORDER BY EmployeeKey 
OFFSET 3 ROWS
FETCH NEXT 5 ROWS ONLY

OFFSET 3 et FETCH NEXT 5 ROWSPageNumberRowsOfPage

  • PageNumber — Représente le numéro de page
  • RowsOfPage — Représente le nombre de lignes sur une page

Maintenant, pour calculer le nombre de lignes à ignorer lorsque nous passons à la page suivante, formule(@PageNumber-1) * @RowsOfPage est utilisé dans OFFSETet le nombre de lignes sera renvoyé dans FETCH.

Ici, PageNumber est 2 et RowsOfPage est 5, ce qui signifie renvoyer l’ensemble de données pour la page numéro 2.

DECLARE @PageNumber AS INT
       ,@RowsOfPage AS INT

SET @PageNumber=2
SET @RowsOfPage=5

SELECT EmployeeKey,FirstName,LastName,Title,EmailAddress,
Phone,EmergencyContactName,DepartmentName
FROM dbo.DimEmployee WITH(NOLOCK)
ORDER BY EmployeeKey
OFFSET (@PageNumber-1) * @RowsOfPage ROWS
FETCH NEXT @RowsOfPage ROWS ONLY

OFFSET (@PageNumber-1) * @ RowsofPage et FETCH NEXT @RowsOfPage ROWS

Conclusion

Dans l’application temps réel, cette logique complète peut être écrite dans la procédure stockée qui est appelée en cliquant sur le bouton « Suivant » ou numéro de page dans l’application Web pour afficher l’ensemble des enregistrements sur la page.

Tous les tutoriels de pagination dans MS SQL Server en utilisant OFFSET et FETCH [Simple] les méthodes que j’ai mentionnées ont bien fonctionné. Merci d’avoir lu et veuillez commenter ci-dessous avec vos réflexions sur cet article et partager signalfix.net avec vos amis.