Ansicht
Dokumentation

ABENCONSTRUCTOR_EXPR_FILTER_TABLE - CONSTRUCTOR EXPR FILTER TABLE

ABENCONSTRUCTOR_EXPR_FILTER_TABLE - CONSTRUCTOR EXPR FILTER TABLE

BAL Application Log Documentation   ROGBILLS - Synchronize billing plans  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

FILTER, Filtertabelle

... FILTER type( itab ${$[EXCEPT$] IN ftab $[USING KEY keyname$]$}
                    $| ${$[USING KEY keyname$] $[EXCEPT$] IN ftab$}
                       WHERE c1 op f1 $[AND c2 op f2 $[...$]$] ) ...


Zusätze:

1. ... USING KEY keyname

2. ... WHERE c1 op v1 $[AND c2 op v2 $[...$]$]

Wirkung

Diese Variante des Filteroperators FILTER filtert itab über Werte aus einer internen Tabelle ftab. In der WHERE-Bedingung werden die Spalten von itab mit den Werten der Spalten des Tabellenschlüssels der Zeilen der Filtertabelle ftab verglichen. Es werden die Zeilen von itab verwendet, für welche es in ftab mindestens eine Zeile gibt, welche die WHERE-Bedingung erfüllt bzw. für welche es bei der Angabe von EXCEPT keine solche Zeile in ftab gibt. Bei ftab handelt es sich um eine funktionale Operandenposition.

Mit USING KEY kann je nach Position der Angabe entweder ein Schlüssel der Tabelle ftab oder der Tabelle itab angegeben werden, der dann für den Zugriff auf diese verwendet wird. Wenn USING KEY nicht verwendet wird, muss die Filtertabelle ftab einen sortierten Schlüssel oder einen Hash-Schlüssel als primären Tabellenschlüssel haben, der dann für den Zugriff auf die Filtertabelle verwendet wird.

Hinweis

Die Zeilentypen von itab und ftab müssen nicht gleich sein.

Beispiel

Filterung dreier Zeilen aus der internen Tabelle carriers. Die Filtertabelle hat einen sortierten Primärschlüssel. Dieser wird implizit verwendet und der Zusatz USING KEY muss nicht angegeben werden.

Zusatz 1

... USING KEY keyname

Wirkung

Angabe des Tabellenschlüssels keyname, mit welchem die Auswertung der WHERE-Bedingung erfolgt. Es kann ein sortierter Schlüssel oder ein Hash-Schlüssel der Filtertabelle hinter ftab oder der Ausgangstabelle hinter itab angegeben werden. Es kann der primäre Tabellenschlüssel oder ein sekundärer Tabellenschlüssel sein, der über primary_key oder den entsprechenden Namen angegeben wird.

  • Bei der Angabe von USING KEY für die Filtertabelle ftab muss diese einen sortierten Schlüssel oder einen Hash-Schlüssel haben. An die Tabellenschlüssel von itab werden keine Anforderungen gestellt. Der angegebene Schlüssel wird für den Zugriff auf die Filtertabelle verwendet.
  • Bei der Angabe von USING KEY für die Ausgangstabelle itab muss diese einen sortierten Schlüssel oder einen Hash-Schlüssel haben. An die Tabellenschlüssel von ftab werden keine Anforderungen gestellt. Der angegebene Schlüssel wird für den Zugriff auf die Ausgangstabelle verwendet.
  • Wenn USING KEY weder für ftab noch für itab angegeben ist, muss die Filtertabelle ftab eine sortierte Tabelle oder eine Hash-Tabelle sein und der primäre Tabellenschlüssel wird implizit beim Zugriff auf die Filtertabelle verwendet. An die Tabellenschlüssel von itab werden keine Anforderungen gestellt.

Hinweis

Für welche der Tabellen ein Schlüssel angegeben wird, hängt von der dadurch zu erzielenden Optimierung ab.

Beispiel

Wie das vorhergehende Beispiel, wobei hier der Zusatz USING KEY für eine der Tabellen verwendet werden muss, da die interne Tabelle filter eine Standardtabelle ohne Primärschlüssel ist.

Beispiel

Wie das vorhergehende Beispiel, wobei der Zusatz USING KEY hier für die andere Tabelle verwendet wird.

Zusatz 2

... WHERE c1 op f1 $[AND c2 op f2 $[...$]$]

Wirkung

Hinter WHERE muss eine Bedingung für den im FILTER-Ausdruck verwendeten Tabellenschlüssel angegeben werden:

Die Kombinierung mehrerer Vergleiche darf nur mit AND erfolgen. Außer den genannten Vergleichen für Schlüsselkomponenten darf es keine weiteren Vergleiche geben. Bei der Variante mit Filtertabelle sind für die rechten Operanden f1, f2, ... Schlüsselkomponenten der Filtertabelle ftab anzugeben. Auf der linken Seite sind beliebige Komponenten der internen Tabelle itab anzugeben, die zur rechten Seite kompatibel sind.

Hinweise

  • Die Booleschen Operatoren NOT, OR und EQUIV können in der WHERE-Bedingung nicht verwendet werden.






Addresses (Business Address Services)   CL_GUI_FRONTEND_SERVICES - Frontend Services  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 8628 Date: 20240523 Time: 183400     sap01-206 ( 173 ms )