FETCH

Wird ab Oracle 12c unterstützt, begrenzt die von einer Abfrage zurückgegebenen Zeilen und realisiert die Paginierung. Entspricht dem LIMIT aus MySQL.

Vollständige Syntax

[ OFFSET offset ROWS ]
FETCH NEXT [ row_count | percent PERCENT ] ROWS [ ONLY | WITH TIES ]Code-Sprache: CSS (css)
1. OFFSET‑Klausel (optional)

Zweck:Überspringt die ersten N Zeilen, wird für die Paginierung verwendet.

  • Bei Weglassen ist der Offset 0, das Lesen beginnt bei der ersten Zeile
  • Negativer Offset: wird als Wert 0 behandelt
  • Offset ist NULL oder größer als die Gesamtzahl der Zeilen: es werden keine Zeilen zurückgegeben
  • Offset mit Nachkommastellen: der Dezimalteil wird abgeschnitten, nur der Ganzzahlteil bleibt
2. FETCH‑Klausel

Zweck: Legt fest, wie viele Zeilen zurückgeliefert werden, unterstützt Zeilenanzahl‑ und Prozentsatz‑Modus.

  • ONLY: Gibt genau die angegebene Anzahl Zeilen zurück (am häufigsten benutzt)
  • WITH TIES: Liefert zusätzlich Datensätze mit gleichem Sortier‑Feldwert wie die letzte abgerufene Zeile. Muss zusammen mit ORDER BY verwendet werden

Beispielcode

Erste 5 Datensätze absteigend nach name sortiert abrufen
SELECT *
FROM student
ORDER BY name DESC
FETCH NEXT 5 ROWS ONLY;
Erste 2 Zeilen holen
select * from student fetch next 2 rows only;Code-Sprache: JavaScript (javascript)

Ausgabe: Gibt die ersten zwei Datensätze jim, lisa zurück.

Paginierung: 3 Zeilen überspringen, 4 Zeilen lesen (Seite 2, 4 Einträge pro Seite)
SELECT *
FROM student
ORDER BY id
OFFSET 3 ROWS
FETCH NEXT 4 ROWS ONLY;
Rückgabe nach Prozentsatz, 10 % aller Datensätze abrufen
SELECT *
FROM student
FETCH NEXT 10 PERCENT ROWS ONLY;
Verwendung von WITH TIES (gleichrangige Datensätze einbeziehen)
SELECT *
FROM student
ORDER BY score DESC
FETCH NEXT 3 ROWS WITH TIES;

Wenn mehrere Datensätze die gleiche Punktzahl wie der dritte Platz haben, werden alle zurückgegeben, die Ergebnisanzahl kann größer als 3 sein.

FETCH

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert