Clause LIMIT dans SQL Server : implémentation et alternatives
De nombreux développeurs sont habitués à utiliser la clause LIMIT couramment utilisée dans MySQL et d'autres systèmes de gestion de bases de données pour limiter le nombre de lignes renvoyées par une requête SQL. Cependant, SQL Server ne prend pas en charge nativement la clause LIMIT. Cet article explore d'autres moyens d'obtenir les mêmes fonctionnalités dans SQL Server.
Méthode 1 : fonction ROW_NUMBER() pour SQL Server 2005 et versions supérieures
Pour SQL Server 2005 et supérieur, vous pouvez utiliser la fonction ROW_NUMBER() pour simuler la clause LIMIT. L'exemple suivant illustre cette approche :
<code class="language-sql">USE AdventureWorks; GO WITH OrderedOrders AS ( SELECT SalesOrderID, OrderDate, ROW_NUMBER() OVER (ORDER BY OrderDate) AS 'RowNumber' FROM Sales.SalesOrderHeader ) SELECT * FROM OrderedOrders WHERE RowNumber BETWEEN 10 AND 20;</code>
Cette requête renvoie des lignes avec un SalesOrderID compris entre 10 et 20, limitant ainsi l'ensemble de résultats.
Méthode 2 : requête imbriquée pour SQL Server 2000 et versions antérieures
Pour SQL Server 2000 et versions antérieures, vous pouvez utiliser la méthode de requête imbriquée :
<code class="language-sql">SELECT TOP 10 * FROM (SELECT TOP 20 * FROM Table ORDER BY Id) ORDER BY Id DESC</code>
Cette requête récupère les 10 premières lignes d'une sous-requête interne qui renvoie les 20 premières lignes triées par Id. En inversant l'ordre de tri dans la sous-requête externe, le résultat final correspond aux 10 premières lignes par ordre croissant par identifiant.
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!