Équivalente à la clause MySQL LIMIT pour SQL Server
De nombreux développeurs ont cherché des alternatives à la clause LIMIT pour SQL Server, car elle reste un élément notable absence sur la plateforme. Pour résoudre ce problème, examinons les solutions de contournement disponibles.
À partir de SQL Server 2012, la syntaxe OFFSET/FETCH, qui fait partie de la norme ANSI, offre une solution :
SELECT ID, Name, Price, Image FROM Products ORDER BY ID ASC OFFSET (@start_from - 1) ROWS FETCH NEXT @items_on_page ROWS ONLY;
Avant vers SQL Server 2012, la méthode ROW_NUMBER() peut être utilisée, comme décrit dans ce article.
Cependant, si SQL Server 2012 n'est pas disponible, une solution de contournement impliquant une expression de table commune (CTE) peut être utilisée :
;WITH o AS ( SELECT TOP ((@start_from - 1) + @items_on_page) -- Again, this calculation depends on the method used for @start_from RowNum = ROW_NUMBER() OVER (ORDER BY ID ASC) /* , other columns */ FROM Products ) SELECT RowNum /* , other columns */ FROM o WHERE RowNum >= @start_from ORDER BY RowNum;
Il s'agit de l'une des nombreuses méthodes qui peuvent être appliqué pour obtenir le résultat souhaité. Il est important de consulter la documentation disponible et de considérer l'efficacité de l'approche choisie.
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!