Maison > base de données > tutoriel mysql > Comment implémenter la pagination dans SQL Server à l'aide de OFFSET et FETCH ?

Comment implémenter la pagination dans SQL Server à l'aide de OFFSET et FETCH ?

DDD
Libérer: 2025-01-18 18:26:16
original
694 Les gens l'ont consulté

How to Implement Pagination in SQL Server Using OFFSET and FETCH?

Utilisez OFFSET et FETCH pour implémenter la pagination dans SQL Server

SQL Server n'a pas d'équivalent direct de la clause LIMIT dans MySQL ou SQL. Cependant, il fournit un autre moyen d'obtenir des fonctionnalités similaires en utilisant les clauses OFFSET et FETCH.

OFFSET et FETCH

Pour implémenter la pagination à l'aide de OFFSET et FETCH, suivez ces étapes :

  1. Trier les données : Utilisez la clause ORDER BY pour trier les données dans l'ordre souhaité.
  2. Sauter les lignes à l'aide de OFFSET : la clause OFFSET spécifie le nombre de lignes au début de l'ensemble de résultats à ignorer.
  3. Limiter le nombre de lignes à l'aide de FETCH : La clause FETCH spécifie le nombre de lignes à renvoyer après avoir ignoré les lignes de décalage.

Exemple :

<code class="language-sql">SELECT *
FROM sys.databases
ORDER BY name
OFFSET 5 ROWS
FETCH NEXT 5 ROWS ONLY;</code>
Copier après la connexion

Cette requête ignorera les 5 premières lignes (OFFSET 5 ROWS) et renverra les 5 lignes suivantes (FETCH NEXT 5 ROWS ONLY).

Alternatives pour les anciennes versions de SQL Server :

Pour les versions SQL Server antérieures à 2012, une alternative moins efficace existe :

  • Utilisez TOP et ORDER BY : Cela peut prêter à confusion et peut ne pas gérer correctement la pagination lors de l'utilisation d'index.
  • Utilisation de ROW_NUMBER() et WHERE : Cela implique de créer une table temporaire avec une colonne de numéro de ligne et un filtrage basé sur le numéro de ligne.

La raison de l'absence de LIMIT

La clause LIMIT est absente dans SQL Server principalement pour des raisons historiques et architecturales. Microsoft a conçu SQL Server en mettant l'accent sur les hautes performances et l'intégrité des données, et les mécanismes OFFSET et FETCH sont considérés comme plus efficaces et plus polyvalents pour la pagination. Cependant, dans les versions récentes, SQL Server a été mis à jour pour inclure ROW_NUMBER() et d'autres optimisations, rendant OFFSET et FETCH plus comparables à LIMIT.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal