SAP NetWeaver AS ABAP Release 750, ©Copyright 2016 SAP AG. Alle Rechte vorbehalten.
ABAP - Schlüsselwortdokumentation → ABAP - Referenz → Externe Daten verarbeiten → ABAP-Datenbankzugriffe → Open SQL → Open SQL - Lesende Zugriffe → SELECT → SELECT - WHERE → WHERE - sql_cond →sql_cond - subquery
Syntax
... ( SELECT { select_clause
FROM source }
|{ FROM source
FIELDS
select_clause }
[WHERE sql_cond]
[GROUP BY
group] [HAVING group_cond]
[UNION [ALL|DISTINCT]
select] ) ...
Wirkung
Eine Subquery der WHERE-Bedingung ist eine eingeklammerte SELECT-Anweisung, in der alle Zusätze außer SINGLE, USING CLIENT, ORDER BY, INTO und die unter additional_options zusammengefassten Zusätze verwendet werden können. Die automatische Mandantenbehandlung der eingeklammerten SELECT-Anweisung richtet sich nach der Mandantenbehandlung der äußeren Anweisung. Ein Zusatz USING CLIENT der äußeren Anweisung wirkt auch auf die eingeklammerte SELECT-Anweisung.
Eine Subquery kann innerhalb folgender relationaler Ausdrücke sql_cond der WHERE-Bedingung für eine Unterabfrage verwendet werden:
Subqueries sind schachtelbar, indem in der WHERE-Bedingung einer Subquery wiederum Subqueries verwendet werden. In geschachtelten Subqueries werden die in den WHERE-Bedingungen angegebenen Spalten von innen nach außen gesucht, wobei die Spalten von inneren Subqueries die gleichnamigen Spalten von äußeren verdecken.
Die Anzahl von SELECT-Anweisungen, die als Subqueries in einer Open-SQL-Anweisung vorkommen können ist begrenzt. Die maximale Anzahl ist so festgelegt, dass die Open-SQL-Anweisung auf allen unterstützten Datenbanksystemen ausgeführt werden kann Wenn statisch erkennbar führen derzeit mehr als 50 SELECT-Anweisungen zu einem Syntax- und ansonsten zu einem Laufzeitfehler. Diese Beschränkung ist unabhängig davon, ob die Subqueries geschachtelt sind oder in verschiedenen relationalen Ausdrücken der WHERE-Bedingung vorkommen.
Hinweise