Ansicht
Dokumentation
ABAPUNION_CLAUSE - UNION CLAUSE
BAL Application Log Documentation PERFORM Short ReferenceDiese Dokumentation steht unter dem Copyright der SAP AG.
UNION, INTERSECT, EXCEPT, query_clauses
Wirkung
Mögliche Klauseln und Zusätze von Queries, deren Ergebnismengen mit UNION, INTERSECT oder EXCEPT vereinigt werden. Die Ergebnismenge von mit UNION, INTERSECT oder EXCEPT verknüpften SELECT-Anweisungen wird immer als mehrzeilig betrachtet.
Für die Klauseln und Zusätze der mit UNION, INTERSECT oder EXCEPT vereinigten SELECT-Anweisungen gelten folgende Besonderheiten:
- Die SELECT-Liste muss aus einer Liste von Spaltenangaben col_spec in Form von beliebigen SQL-Ausdrücken bestehen. Die Angaben von * oder data_source~* sind nicht möglich.
- Alle SELECT-Listen von über UNION, INTERSECT oder EXCEPT verknüpften SELECT-Anweisungen müssen gleich viele Elemente haben.
- Die einander zugeordneten Spalten müssen die gleichen Typeigenschaften bezüglich eingebautem Datentyp Länge und Anzahl der Nachkommastellen haben, mit folgenden Ausnahmen:
- Numerische Typen INT1, INT2 , INT4 und INT8 können eine Spalte bilden. Die resultierende Spalte hat den Datentyp mit dem größten vorkommenden Wertebereich.
- Numerische Typen DEC dürfen unterschiedliche Längen, müssen aber die gleiche Anzahl von Nachkommastellen haben. Die resultierende Spalte hat den Datentyp mit der größten vorkommenden Länge. Die entsprechenden speziellen Typen CURR und QUAN werden dabei wie DEC behandelt.
- Die numerischen Typen DF16_DEC DF34_DEC werden wie die Zahlen vom Typ DEC behandelt, als die sie abgelegt sind, und es gilt obige Regel bezüglich Längen und Nachkommastellen.
- Zeichenartige Typen CHAR dürfen unterschiedliche Längen haben. Die resultierende Spalte hat den Datentyp mit der größten vorkommenden Länge. Die entsprechenden speziellen Typen CLNT, LANG, CUKY und UNIT werden dabei wie CHAR behandelt.
- Alle anderen Typen müssen vollständig gleich sein. Dies gilt insbesondere für NUMC und RAW, bei denen die Längen übereinstimmen müssen. Auch können die verschiedenen Arten von Strings nicht kombiniert werden.
- In den WHERE-Bedingungen der beteiligten SELECT-Anweisungen ist der Zusatz FOR ALL ENTRIES nicht erlaubt.
- Für die einzelnen Ergebnismengen kann keine ORDER BY-Klausel angegeben werden. Statt dessen kann ORDER BY auf die vereinigte Ergebnismenge von Hauptqueries angewendet werden.
Die Anzahl der über UNION, INTERSECT oder EXCEPT verknüpfbaren SELECT-Anweisungen ist nicht durch einen festen Wert begrenzt.
Hinweise
- Jede der verknüpften SELECT-Anweisungen hat ihre eigene Mandantenbehandlung. Ein Zusatz USING oder der obsolete Zusatz CLIENT SPECIFIED in der FROM-Klausel wirkt nur auf die SELECT-Anweisung, für die er angegeben ist.
- Wenn erforderlich, können die Spaltennamen der einzelnen Ergebnismengen über Aliasnamen hinter AS angepasst werden.
- Wenn die Spaltennamen der Ergebnismengen nicht gleich sind, werden die Spaltennamen der Ergebnismenge der SELECT-Anweisung links von UNION, INTERSECT oder EXCEPT übernommen. In einem solchen Fall sind die Namen mit Ausnahme von Subqueries in der Anweisung WITH in der Regel aber nicht sichtbar.
- Die numerischen Typen DF16_DEC und DF34_DEC können nur bei übereinstimmenden Nachkommastellen gemeinsam in einer Spalte verwendet werden.
- Um die Spalten der Ergebnismenge der beteiligten SELECT-Anweisungen aufeinander abzustimmen, können SQL-Ausdrücke, Hostausdrücke und Hostvariablen verwendet werden.
Beispiel
Vereinigungsmenge von Anwendungen dreier Aggregatausdrücke auf die gleiche DDIC-Datenbanktabelle in einer Subquery einer WITH-Anweisung. Die Vereinigungsmenge wird in einem allgemeinen Tabellenausdruck selektiert, damit in der Hauptquery der WITH-Anweisung eine einzige WHERE-Bedingung für die gesamte Ergebnismenge verwendet werden kann. Wenn die Vereinigungsmenge in einer Hauptquery gebildet würde, müsste jede einzelne SELECT-Anweisung die gleiche WHERE- oder HAVING-Bedingung enthalten.
General Material Data Addresses (Business Address Services)
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 8873 Date: 20240605 Time: 130718 sap01-206 ( 116 ms )