Anfang des InhaltsbereichsSELECT ORDERED-Anweisung (select_ordered_statement:_positioned) Dokument im Navigationsbaum lokalisieren

Die SELECT ORDERED-Anweisung ( select_ordered_statement:_positioned ) selektiert in einer geordneten Tabelle die erste oder letzte Zeile, oder bezüglich eines Standpunktes die nachfolgende oder vorangehende Zeile. Die Ordnung ist durch einen Schlüssel oder einen Index definiert. Der Standpunkt wird durch eine Cursorposition festgelegt.

Syntax

<select_ordered_statement:_positioned> ::=
<select_ordered_format1:_positioned> | <select_ordered_format2:_positioned>

<select_ordered_format1:_positioned> ::=
  SELECT <FIRST | LAST> <select_column>,... INTO <parameter_spec>,...
FROM <table_name> [INDEX <column_name> | INDEXNAME <index_name>]
WHERE CURRENT OF <result_table_name> [<lock_option>]
| SELECT <FIRST | LAST> <select_column>,... INTO <parameter_spec>,...
FROM <table_name> [index_pos_spec]
WHERE CURRENT OF <result_table_name> [<lock_option>]

<select_ordered_format2:_positioned> ::=
SELECT <NEXT | PREV> <select_column>,...INTO <parameter_spec>,...
FROM <table_name> [<index_pos_spec>]
WHERE CURRENT OF <result_table_name> [<lock_option>]

select_column, parameter_spec, table_name, column_name, index_name, result_table_name, lock_option, index_pos_spec

Erläuterung

Diese SELECT ORDERED-Anweisung dient dazu, auf die anhand einer durch den Schlüssel oder durch einen Sekundärschlüssel definierten Ordnung erste oder letzte Zeile bzw. von einem angegebenen Standpunkt aus auf die nachfolgende oder vorangehende Zeile zuzugreifen.

Die Ergebnistabelle muß mit FOR UPDATE angegeben worden sein.

Der Benutzer muß das SELECT-Privileg für die ausgewählten Spalten oder für die ganze Tabelle besitzen.

Der Tabellenname in der SELECT ORDERED-Anweisung muß mit dem Tabellennamen in der FROM-Klausel der QUERY-Anweisung übereinstimmen, die die Ergebnistabelle erzeugt hat.

Der Standpunkt innerhalb der Tabelle ist durch die optionale Indexpositionsspezifikation und durch einen Schlüsselwert definiert, wobei der Schlüsselwert durch die Cursorposition bestimmt ist.

FIRST | LAST

FIRST (LAST) bewirkt in der geordneten Tabelle die Suche nach der ersten (letzten) Zeile, die bezüglich der Ordnung größer (kleiner) oder gleich dem Standpunkt ist.

NEXT | PREV

NEXT (PREV) bewirkt vom angegebenen Standpunkt aus die Suche in aufsteigender (absteigender) Ordnung nach der nächsten Zeile.

Einspaltiger Index

Wenn ein Indexname durch INDEX <column_name> oder INDEXNAME <index_name> oder eine Indexpositionsspezifikation angegeben ist, und der zugehörige Index einspaltig ist, dann werden für die SELECT ORDERED-Anweisung die Zeilen, die in der indizierten Spalte NULL-Werte aufweisen, nicht beachtet. In diesem Fall kann das Ergebnis der SELECT ORDERED-Anweisung niemals eine Zeile sein, die in der indizierten Spalte einen NULL-Wert aufweist.

Weitere Informationen

Im interaktiven Betrieb kann INTO <parameter_spec>,... entfallen.

Der Spaltenname ( column_name ) muß eine indizierte Spalte bezeichnen.

Die LOCK-Option bestimmt, welche Sperre auf die gelesene Zeile gesetzt wird.

Die Angabe einer LONG-Spalte in einer selektierten Spalte ( select_column ) ist nur in der obersten Folge von selektierten Spalten in dieser SELECT ORDERED-Anweisung zulässig.

Ergebnis

Wenn der Cursor auf einer Zeile der Ergebnistabelle steht, und eine Zeile gefunden wurde, die die angegebenen Bedingungen erfüllt, werden den Parametern die korrespondierenden Spaltenwerte zugewiesen. Für die Zuweisungen der Werte gelten die bei der FETCH-Anweisung aufgeführten Regeln.

Wenn der Cursor nicht auf einer Zeile der Ergebnistabelle steht, wird eine Fehlermeldung ausgegeben, und den in den Parameterspezifikationen angegebenen Parametern werden keine Werte zugewiesen.

Siehe auch:

SELECT ORDERED-Anweisung (select_ordered_statement:_searched)

Ende des Inhaltsbereichs