Die WHERE-Klausel ist ein Zusatz der Open SQL-Anweisungen SELECT, UPDATE und DELETE und dient der Einschränkung der Wertemenge bei Datenbankzugriffen.
Um eine Selektionstabelle in der WHERE-Klausel zu verwenden, schreibt man
......... WHERE f IN seltab.
Dabei ist f ist der Name einer Datenbankspalte und seltab ist die diesem Feld zugeordnete Selektionstabelle. Die entsprechende Open SQL-Anweisung greift nur auf die Zeilen der Datenbanktabelle zu, in denen der Inhalt des Felds f den in seltabgespeicherten Bedingungen entspricht.
REPORT demo_where_in_seltab.
DATA wa_carrid TYPE spfli-carrid.
SELECT-OPTIONS airline FOR wa_carrid.
SELECT carrid FROM spfli INTO wa_carrid WHERE carrid IN airline.
WRITE /
wa_carrid.
ENDSELECT.
Die Selektionstabelle airline ist mit der Spalte CARRID der Datenbanktabelle SPFLI verknüpft. Die WHERE-Klausel der SELECT-Anweisung prüft, ob der Inhalt der Spalte CARRID den in airline abgelegten Bedingungen entspricht.
Ist die Selektionstabelle wie folgt gefüllt:
SIGN |
OPTION |
LOW |
HIGH |
I |
BT |
DL |
UA |
E |
EQ |
LH |
|
werden die Datenbankzeilen für alle Fluggesellschaften zwischen DL und UA außer LH eingelesen.