Das ROWNO-Prädikat (rowno_predicate) ist ein Prädikat, das die Anzahl der Zeilen einer Ergebnistabelle bzw. die Anzahl zu ändernder oder zu löschender Zeilen beschränkt.
<rowno_predicate> ::= ROWNO < <unsigned_integer>
| ROWNO < <parameter_spec>
| ROWNO <= <unsigned_integer>
| ROWNO <= <parameter_spec>
SQL-Tutorial, Auswählen und Anordnen von Zeilen
Ein ROWNO-Prädikat darf in einer WHERE-Klausel verwendet werden, die zu einer QUERY-, DELETE- oder UPDATE-Anweisung gehört. Das ROWNO-Prädikat kann innerhalb der WHERE-Klausel wie jedes andere Prädikat verwendet werden, wenn folgende Einschränkungen beachtet werden:
● ROWNO-Prädikat muss mit den anderen Prädikaten logisch durch AND verknüpft sein
● ROWNO-Prädikat darf nicht negiert werden
● ROWNO-Prädikat darf höchstens einmal in der WHERE-Klausel verwendet werden
Durch die Angabe einer ganzen Zahl ohne Vorzeichen (unsigned_integer) oder eine Parameterspezifikation (parameter_spec) wird die maximale Anzahl der Zeilen angegeben, die die Ergebnistabelle aufweisen soll. Wurden mehr Zeilen gefunden, werden diese nicht betrachtet und führen auch nicht zu einer Fehlermeldung. Die Angabe eines ROWNO-Prädikats der Art ROWNO <= 0 führt zu einer leeren Ergebnistabelle bzw. keiner geänderten oder gelöschten Zeile.
Wird ein ROWNO-Prädikat und eine ORDER-Klausel in einer QUERY-Anweisung angegeben, so werden nur die ersten n Ergebniszeilen gesucht und sortiert. Das Ergebnis unterscheidet sich im Normalfall von dem, das man erhalten hätte, wäre kein ROWNO-Prädikat angegeben gewesen, und hätte man dann die ersten n Ergebniszeilen betrachtet.
Wenn ein ROWNO-Prädikat und eine Set-Funktion in einer QUERY-Anweisung angegeben werden, dann wird die Set-Funktion nur auf die durch das ROWNO-Prädikat beschränkte Anzahl der Ergebniszeilen angewandt.
Die Angabe eines ROWNO-Prädikats in einer UPDATE- oder DELETE-Anweisung ist sinnvoll, wenn eine so große Anzahl von Zeilen zu bearbeiten ist, dass deren Log-Informationen den zur Verfügung stehenden Platz überschreiten würden. Die gewünschten Änderungsanweisung können Sie somit in mehreren Teilschritten durchführen, so lange bis die Anzahl der geänderten bzw. gelöschten Zeilen kleiner ist als die im ROWNO-Prädikat angegebenen Anzahl.
Wenn Sie eine LIMIT-Klausel oder ein TOP-Syntaxelement verwenden, dürfen Sie das ROWNO-Prädikat nicht verwenden.