| |
|
3. Synchronisierte
Unterabfragen
|
|
|
| |
Eine Unterabfrage kann auch für wiederholte Ausführung
strukturiert werden, d.h. einmal für jede Zeile, die von der
übergeordneten Abfrage angegeben wird.
Synchronisierte Unterabfragen werden verwendet, wenn eine verschachtelte
Unterabfrage für jede Zeile, die von der äußeren
Abfrage selektiert wird, ein unterschiedliches Ergebnis oder eine
unterschiedliche Ergebnismenge ausgeben muß.
Die Unterabfrage hängt vom Ablauf der äußeren Abfrage
ab.
Synchronisierte Unterabfragen entstehen, indem man in der untergeordneten
Abfrage eine WHERE- Klausel verwendet, die sich auf eine Tabelle
bezieht, die in der äußeren Abfrage angegeben ist.
Der aktuelle Wert der relevanten Spalte in der äußeren
SELECT -Anweisung wird bei jeder Ausführung dem Spaltenwert
in der Unterabfrage angeglichen.
Die Spaltenwerte in den inneren und äußeren SELECT -Anweisungen
können aus den glei- chen oder aus verschiedenen Tabellen stammen.
|
| |
| Beispiel:
Zeigen Daten über Angestellte, die mehr verdienen als der Durchschnitt
ihrer Abteilung. |
SELECT empno, ename, sal, deptno
|
FROM emp x
|
WHERE sal > ( SELECT AVG(sal) FROM emp y WHERE
x.deptno = y.deptno);
|
|
|
| |
|
|