Zu Oracle

Bereich:
Versionsinfo:
SQL
9.2, 10.2, 11.1
Erstellung:
Letzte Überarbeitung:
05/2005 MM
06/2009 EF
 Als PDF Downloaden!

Inline View

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

Suche

Kontakt

Telefon:
  089 6228 6789-0

Telefon (gültig bis Ende 2010):
  089 679090-40

E-Mail Verteiler Monatstipps

Bitte nehmen Sie mich in den Verteiler der monatlichen Tipps & Tricks auf.