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 :
ORDER BY
pour trier les données dans l'ordre souhaité. OFFSET
spécifie le nombre de lignes au début de l'ensemble de résultats à ignorer. 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>
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 :
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!