
kompensationsklausel
FL 500 Die Offset-Klausel gibt die Anzahl der Zeilen der Ergebnistabelle an, die übersprungen werden sollen, bevor Zeilen abgerufen werden.
Syntax für die Offset-Klausel
- offset-row-count
- Eine Konstante oder Variable, die die Anzahl der zu überspringenden Zeilen angibt, bevor Zeilen abgerufen werden. "offset-row-count" muss ein numerischer Wert sein, der eine positive Zahl oder Null ist. Wenn der Wert kein BIGINT-Wert ist, wird der Wert in einen BIGINT-Wert umgewandelt. offset-row-count darf nicht der Nullwert sein.
Wenn die Offset-Klausel als Vorbereitungsattribut angegeben wird, darf offset-row-count nicht auf eine Variable verweisen.
- Die Definition einer Ansicht
- Die Definition einer materialisierten Abfragetabelle
- Die RETURN-Anweisung einer SQL-Tabellenfunktion
- Die Definition einer Zeilenberechtigung
- Die Definition einer Spaltenmaske
- Die äußerste Auswahl für einen sensiblen dynamischen Cursor
Eine Offset-Klausel kann auch in einer SELECT INTO-Anweisung angegeben werden.
Wenn eine Subselect-, Fullselect- oder SELECT INTO-Anweisung eine Offset-Klausel enthält, darf die Auswahlliste dieser Subselect-, Fullselect- oder SELECT INTO-Anweisung keinen Ausdruck enthalten, der nicht deterministisch ist oder eine externe Aktion aufweist.
Wenn die Fullselect-Anweisung eine SQL-Datenänderungsanweisung in der FROM-Klausel enthält, werden alle Zeilen der Ergebnistabelle geändert, unabhängig von der Anzahl der zu überspringenden Zeilen.
Die Offset-Klausel darf nicht in der äußeren Fullselect für einen sensiblen dynamischen scrollbaren Cursor angegeben werden.
Um eine vorhersehbare Reihe von zu überspringenden Zeilen zu bestimmen, muss eine ORDER BY-Klausel mit Sortierschlüsseln angegeben werden, die die Sortierreihenfolge jeder Zeile in der Zwischenergebnistabelle eindeutig identifizieren. Wenn die Zwischenergebnistabelle doppelte Sortierschlüssel für einige Zeilen enthält, ist die Reihenfolge dieser Zeilen nicht deterministisch. Wenn keine ORDER BY-Klausel vorhanden ist, befindet sich die Zwischenergebnistabelle nicht in einer deterministischen Reihenfolge. Wenn die Reihenfolge der Zwischenergebnistabelle nicht deterministisch ist, ist die Menge der übersprungenen Zeilen nicht vorhersehbar.
Wenn sowohl die Offset-Klausel als auch die ORDER BY-Klausel angegeben sind, wird die Sortierung für die gesamte Ergebnistabelle durchgeführt, bevor die angegebene Anzahl von Zeilen übersprungen wird.
Zeilenzugriffskontrollen können sich indirekt auf die Offset-Klausel auswirken, da sie die Zeilen betreffen, auf die die Autorisierungs-ID oder Rolle des Fullselect zugreifen kann. Spaltenzugriffskontrollen haben keine Auswirkungen auf die Offset-Klausel.
Die Offset-Klausel kann verwendet werden, um Zeilen von einem Punkt in der Ergebnistabelle bis zum Ende der Ergebnistabelle zurückzugeben. In diesem Fall ist die Abrufklausel nicht angegeben.
Hinweise
- Syntaxalternativen:
- Die Fetch-Klausel ist eine Alternative zum Festlegen der Anzahl der zu überspringenden Zeilen, wenn die maximale Anzahl der abzurufenden Zeilen angegeben wird. Seefetch-Klausel.
