SELECT-Klausel

Die SELECT-Klausel besteht entweder aus einer einzelnen Identifikationsvariablen, die in der FROM-Klausel definiert ist, oder aus einem einzelnen einwertigen Pfadausdruck, der eine Objektreferenz oder einen CMP-Wert ergibt. Mit dem Schlüsselwort DISTINCT können Sie doppelte Referenzen verhindern.

Für Finder- und Select-Abfragen wird die Syntax der SELECT-Klausel im folgenden Beispiel veranschaulicht:
SELECT  [  ALL | DISTINCT  ]
		{ Pfadausdruck-mit-einem-Wertn  |  Aggregationsausdruck  |  OBJECT ( Identifikationsvariable )  }

Bei einer Abfrage, die eine Finder-Methode definiert, muss die Abfrage einen Objekttyp zurückgeben, der konsistent mit der Home-Klasse ist, die der Finder-Methode zugeordnet ist. Beispiel: Eine Finder-Methode für die Home-Klasse department kann keine Mitarbeiterobjekt (employee) zurückgeben.

Beispiel: SELECT-Klausel

Alle Mitarbeiter suchen, die mehr verdienen als John:
SELECT OBJECT(e) FROM EmpBean ej, EmpBean e 
WHERE  ej.name = 'John'  and e.salary > ej.salary
Alle Abteilungen suchen, die einen oder mehrere Mitarbeiter haben, die weniger als 20000 verdienen:
SELECT DISTINCT  e.dept  FROM EmpBean e where e.salary < 20000
Eine Select-Methode kann einen Pfadausdruck enthalten, der zu einem beliebigen Wert führt:
SELECT  e.dept.name  FROM EmpBean e where e.salary < 2000

Diese Abfrage gibt eine Gruppe von Namenswerten für die Abteilungen zurück, die Mitarbeiter mit einem Gehalt von weniger als 20000 haben.

Eine Select-Methode kann einen Aggregatwert zurückgeben:
SELECT  avg(e.salary)  FROM EmpBean e
[AIX Solaris HP-UX Linux Windows][z/OS]

Beispiel: Gültige dynamische Abfragen

Dynamische Abfragen haben folgende Syntax:
SELECT { ALL | DISTINCT }  [ selection , ]*  selection
selection  ::= { expression   |  scalar-subselect [[AS] id ] }

Eine skalare Unterauswahl ist eine Unterauswahl, die einen einzelnen Wert zurückgibt.

Es folgen Beispiele für dynamische Abfragen:
SELECT e.name, e.salary+e.bonus as total_pay from EmpBean e
SELECT  SUM( e.salary+e.bonus) from EmpBean e where e.dept.deptno = ?1

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_select
Dateiname:cque_select.html