Heim > Datenbank > MySQL-Tutorial > Wie kann ich die Anzahl der in SQL Server abgerufenen Datensätze begrenzen, ohne LIMIT zu verwenden?

Wie kann ich die Anzahl der in SQL Server abgerufenen Datensätze begrenzen, ohne LIMIT zu verwenden?

Linda Hamilton
Freigeben: 2025-01-18 18:34:11
Original
534 Leute haben es durchsucht

How Can I Limit the Number of Records Retrieved in SQL Server Without Using LIMIT?

Datensatzlimit in SQL Server: LIMIT überschritten

SQL Server unterstützt nicht die LIMIT-Funktion oder den OFFSET-Operator, die üblicherweise in anderen Datenbanksystemen verwendet werden. Dies kann eine Herausforderung darstellen, wenn die Anzahl der abgerufenen Datensätze begrenzt wird.

SQL Server bietet jedoch eine alternative Möglichkeit, ähnliche Funktionen zu erreichen. Eine Möglichkeit besteht darin, die Funktion ROW_NUMBER() mit einer WHERE-Klausel zu verwenden:

<code class="language-sql">SELECT * 
FROM ( 
  SELECT *, ROW_NUMBER() OVER (ORDER BY name) AS row 
  FROM sys.databases 
) a 
WHERE row > 5 AND row <= 10</code>
Nach dem Login kopieren

Diese Unterabfrage weist jeder Zeile eine Zeilennummer zu und filtert dann die Ergebnisse, um nur Zeilen innerhalb des angegebenen Bereichs einzuschließen.

Eine andere Möglichkeit ist die Verwendung der TOP-Klausel:

<code class="language-sql">SELECT TOP 10 * FROM stuff</code>
Nach dem Login kopieren

Obwohl TOP die Anzahl der zurückgegebenen Zeilen begrenzt, bietet es keine Kontrolle über die Startposition.

Warum verfügt SQL Server nicht über LIMIT?

Das Fehlen der LIMIT-Funktion in SQL Server kann auf Leistungsaspekte zurückzuführen sein. Die Verwendung von LIMIT kann zu Leistungseinbußen führen, insbesondere bei großen Tabellen. SQL Server priorisiert die Optimierung der Abfrageausführungszeit.

Verwenden Sie OFFSET und ROWS

Für SQL Server 2012 und höher können Sie die Schlüsselwörter OFFSET und ROWS verwenden, um eine detailliertere Kontrolle über die Ergebnismenge zu erhalten:

<code class="language-sql">SELECT  *
FROM     sys.databases
ORDER BY name 
OFFSET  5 ROWS 
FETCH NEXT 5 ROWS ONLY</code>
Nach dem Login kopieren

Diese Abfrage überspringt die ersten 5 Zeilen und ruft die nächsten 5 Zeilen ab und bietet so einschränkende Funktionen, die mit LIMIT vergleichbar sind.

Das obige ist der detaillierte Inhalt vonWie kann ich die Anzahl der in SQL Server abgerufenen Datensätze begrenzen, ohne LIMIT zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage