Ansicht
Dokumentation
ABENCONSTRUCTOR_EXPR_FILTER_TABLE - CONSTRUCTOR EXPR FILTER TABLE
BAL Application Log Documentation General Material DataDiese Dokumentation steht unter dem Copyright der SAP AG.
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:
- Bei einem Hash-Schlüssel muss es für jede Schlüsselkomponente genau einen Vergleichsausdruck c op f geben. Der einzige für op erlaubte Vergleichsoperator ist =.
- Bei einem sortierten Schlüssel muss eine Anfangsstück des Schlüssels durch Vergleichsausdrücke c op f abgedeckt werden. Für op sind alle binären Vergleichsoperatoren erlaubt.
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 obsoleten Vergleichsoperatoren können in der WHERE-Bedingung nicht verwendet werden.
RFUMSV00 - Advance Return for Tax on Sales/Purchases ABAP Short Reference
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 8628 Date: 20240616 Time: 145813 sap01-206 ( 119 ms )