ROWS
Abrufen eines Zeilenabschnitts aus einer geordneten Menge
DSQL, PSQL
SELECT <columns> FROM ... [WHERE ...] [ORDER BY ...] ROWS m [TO n]
| Argument | Beschreibung |
|---|---|
m, n |
Beliebige Integer-Ausdrücke |
|
Note
|
ROWS ist keine Standard-Syntax
|
Begrenzt die Anzahl der Zeilen, die von der SELECT-Anweisung zurückgegeben werden, auf eine angegebene Anzahl oder einen bestimmten Bereich.
Die ROWS-Klausel erfüllt auch die gleiche Aufgabe wie die FIRST- und SKIP-Klauseln, ist jedoch nicht SQL-kompatibel.Im Gegensatz zu FIRST und SKIP sowie OFFSET und FETCH akzeptieren die ROWS- und TO-Klauseln jede Art von Integer-Ausdruck als Argumente ohne Klammern.Natürlich können für verschachtelte Auswertungen innerhalb des Ausdrucks immer noch Klammern benötigt werden, und eine Unterabfrage muss immer in Klammern eingeschlossen werden.
|
Important
|
|
Der Aufruf von ROWS m ruft die ersten m Datensätze aus der angegebenen Menge ab.
Merkmale der Verwendung von ROWS m ohne eine TO-Klausel:
-
Wenn m größer als die Gesamtzahl der Datensätze im Zwischendatensatz ist, wird der gesamte Satz zurückgegeben
-
Wenn m = 0, wird eine leere Menge zurückgegeben
-
Wenn m < 0, schlägt der Aufruf der SELECT-Anweisung mit einem Fehler fehl
Der Aufruf von ROWS m TO n ruft die Zeilen aus der Menge ab, beginnend bei Zeile m und endend nach Zeile n — die Menge ist inklusiv.
Merkmale der Verwendung von ROWS m mit einer TO-Klausel:
-
Wenn m größer als die Gesamtzahl der Zeilen in der Zwischenmenge ist und n >= m, wird eine leere Menge zurückgegeben
-
Wenn m nicht größer als n und n größer als die Gesamtzahl der Zeilen in der Zwischenmenge ist, wird die Ergebnismenge auf Zeilen beginnend mit m bis zum Ende der Menge begrenzt
-
Wenn m < 1 und n < 1 ist, schlägt der Aufruf der
SELECT-Anweisung mit einem Fehler fehl -
Wenn n = m - 1, wird eine leere Menge zurückgegeben
-
Wenn n < m - 1, schlägt der Aufruf der SELECT-Anweisung mit einem Fehler fehl
Verwenden einer TO-Klausel ohne eine ROWS-Klausel:
Während ROWS die FIRST- und SKIP-Syntax ersetzt, gibt es eine Situation, in der die ROWS-Syntax nicht das gleiche Verhalten bietet: Die Angabe von SKIP n allein gibt den gesamten Zwischensatz zurück, ohne das erste n Reihen.Die Syntax von ROWS … TO benötigt dazu ein wenig Hilfe.
Bei der ROWS-Syntax benötigen Sie eine ROWS-Klausel in Verbindung mit der TO-Klausel und machen das zweite Argument (n) bewusst größer als die Größe des Zwischendatensatzes.Dies wird erreicht, indem ein Ausdruck für n erstellt wird, der eine Unterabfrage verwendet, um die Anzahl der Zeilen im Zwischensatz abzurufen und 1 hinzufügt.