Réplication de LIMIT de MySQL dans SQL Server
La clause LIMIT
de MySQL restreint le nombre de lignes renvoyées. SQL Server y parvient en utilisant la clause TOP
. Voici comment obtenir la même fonctionnalité :
SQL Server 2005 et versions ultérieures
Pour SQL Server 2005 et les versions ultérieures, une approche courante consiste à utiliser ROW_NUMBER()
:
<code class="language-sql">SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (ORDER BY Id) as RowNum FROM OrderedOrders ) as RankedOrders WHERE RowNum BETWEEN 10 AND 20;</code>
Cela attribue un classement unique à chaque ligne, puis filtre en fonction de ce classement.
SQL Server 2000 et versions antérieures
Dans les anciennes versions (SQL Server 2000 et inférieures), une instruction SELECT
imbriquée est nécessaire :
<code class="language-sql">SELECT TOP 10 * FROM (SELECT TOP 20 * FROM Table ORDER BY Id) as SubQuery ORDER BY Id DESC;</code>
Cela sélectionne d'abord les 20 premières lignes, puis à partir de ce sous-ensemble, sélectionne les 10 premières. Notez l'importance de la clause secondaire ORDER BY
pour des résultats cohérents. L'ordre dans les deux requêtes est crucial pour obtenir les lignes souhaitées.
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!