Selektionstabellen in der WHERE-Klausel 

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 <seltab> gespeicherten 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.