Implémenter la fonction équivalente de la clause LIMIT dans SQL Server
De nombreuses bases de données SQL prennent en charge la clause LIMIT pour limiter le nombre de lignes renvoyées dans le jeu de résultats. Bien que MySQL prenne directement en charge LIMIT, SQL Server n'a pas de clause équivalente. Cependant, SQL Server propose plusieurs façons d'obtenir la même fonctionnalité.
Méthode 1 : utilisez ROW_NUMBER() et BETWEEN
Pour SQL Server 2005 et versions ultérieures, vous pouvez utiliser la fonction ROW_NUMBER() pour attribuer un numéro de ligne à chaque enregistrement de l'ensemble de résultats. Ensuite, utilisez l'opérateur BETWEEN pour filtrer l'ensemble de résultats en fonction des numéros de ligne.
<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>
Méthode 2 : Utiliser TOP et une requête externe
Pour SQL Server 2000 et versions antérieures, vous pouvez utiliser des requêtes imbriquées, combinant les clauses TOP et ORDER BY. La requête externe sélectionne un nombre spécifié de lignes dans la requête interne.
<code class="language-sql">SELECT TOP 10 * FROM (SELECT TOP 20 * FROM Table ORDER BY Id) ORDER BY Id DESC</code>
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!