Entspricht der MySQL LIMIT-Klausel für SQL Server
Viele Entwickler haben nach Alternativen zur LIMIT-Klausel für SQL Server gesucht, da diese nach wie vor bemerkenswert ist Abwesenheit auf der Plattform. Um dieses Problem zu beheben, schauen wir uns die verfügbaren Problemumgehungen genauer an.
Ab SQL Server 2012 bietet die OFFSET/FETCH-Syntax, Teil des ANSI-Standards, eine Lösung:
SELECT ID, Name, Price, Image FROM Products ORDER BY ID ASC OFFSET (@start_from - 1) ROWS FETCH NEXT @items_on_page ROWS ONLY;
Prior Für SQL Server 2012 kann die Methode ROW_NUMBER() verwendet werden, wie hier beschrieben Artikel.
Wenn jedoch SQL Server 2012 nicht verfügbar ist, kann eine Problemumgehung mit einem allgemeinen Tabellenausdruck (CTE) verwendet werden:
;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;
Dies ist eine von mehreren Methoden, die möglich sind angewendet, um das gewünschte Ergebnis zu erzielen. Es ist wichtig, die verfügbare Dokumentation zu prüfen und die Effizienz des gewählten Ansatzes zu prüfen.
Das obige ist der detaillierte Inhalt vonWie ersetze ich die LIMIT-Klausel von MySQL in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!