Unterabfragen

Eine Unterabfrage kann in den Prädikaten EXISTS oder IN verwendet werden. Bei einer Unterabfrage sollte in der SELECT-Klausel nur ein Element angegeben werden.

Wenn in einer Unterabfrage ein Pfadausdruck vorkommt, muss die Identifikationsvariable des Pfadausdrucks entweder in der Unterabfrage, in einer der enthaltenen Unterabfragen oder in der äußeren Abfrage definiert sein. Eine skalare Unterabfrage ist eine Unterabfrage, die einen einzigen Wert zurückgibt. Eine skalare Unterabfrage kann im Prädikat BASIC oder in der SELECT-Klausel einer dynamischen Abfrage verwendet werden.

Beispiel: Unterabfragen

SELECT  OBJECT(e) FROM  EmpBean e 
WHERE e.salary > ( SELECT  AVG(e1.salary) FROM  EmpBean e1)

Diese Abfrage gibt Mitarbeiter zurück, die mehr als das Durchschnittsgehalt aller Mitarbeiter verdienen.

SELECT  OBJECT(e) FROM EmpBean e WHERE  e.salary > 
( SELECT AVG(e1.salary) FROM  IN  (e.dept.emps) e1  ) 

Diese Abfrage gibt Mitarbeiter zurück, die mehr als das Durchschnittsgehalt ihrer Abteilung verdienen.

SELECT  OBJECT(e) FROM EmpBean e WHERE e.salary =
( SELECT MAX(e1.salary) FROM IN (e.dept.emps) e1  )

Diese Abfrage gibt Mitarbeiter zurück, die in ihrer Abteilung am meisten verdienen.

	SELECT OBJECT(e) FROM EmpBean e
WHERE e.salary > ( SELECT AVG(e.salary) FROM EmpBean e1 
WHERE YEAR(e1.hireDate) =  YEAR(e.hireDate)  )

Diese Abfrage gibt Mitarbeiter zurück, die mehr als das Durchschnittsgehalt der im selben Jahr eingestellten Mitarbeiter verdienen.


Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cque_subquery
Dateiname:cque_subquery.html