Im Rahmen einer SELECT-Anweisung kommt es immer wieder vor, dass Daten ermittelt werden sollen, die auf einer Datenquelle basieren, die erst zur Laufzeit als virtuelle Tabelle erstellt wird.
In diesem Fall spricht man von einer Inline View - also einer Unterabfrage in der FROM-Klausel eines SELECT-Befehls. Diese Unterabfrage wird mit einem Aliasnamen versehen, der dann im SELECT-Statement benutzt wird.
Die Inline View kann ihrerseits Subqueries, Joins und weitere Unterabfragen enthalten.
Beispiel:
Es sollen Namen, Gehälter, Abteilungsnummern und Gehälter aller Mitarbeiter angezeigt werden, die weniger als das Durchschnittsgehalt ihrer Abteilung verdienen. Letzeres wird durch eine Inline View (Aliasname: s) ermittelt.
SQL> SELECT e.ename, e.sal, e.deptno, ROUND(s.schnitt) schnitt
FROM emp e JOIN (SELECT deptno, AVG(sal) schnitt
FROM emp GROUP BY deptno) s
ON e.deptno = s.deptno
WHERE e.sal < s.schnitt;
oder
SQL> SELECT e.ename, e.sal, e.deptno, ROUND(s.schnitt) schnitt
FROM emp e, (SELECT deptno, AVG(sal) schnitt
FROM emp GROUP BY deptno) s
WHERE e.deptno = s.deptno
AND e.sal < s.schnitt;
ENAME SAL DEPTNO SCHNITT
------- ------ ------ ----------
JAMES 950 30 1567
TURNER 1500 30 1567
MARTIN 1250 30 1567
WARD 1250 30 1567
ADAMS 1100 20 2175
SMITH 800 20 2175
MILLER 1300 10 2917
CLARK 2450 10 2917
Telefon:
089 6228 6789-0
Telefon (gültig bis Ende 2010):
089 679090-40
E-Mail:
› info@muniqsoft.de
Bitte nehmen Sie mich in den Verteiler der monatlichen Tipps & Tricks auf.