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.
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
SELECT OBJECT(e) FROM EmpBean ej, EmpBean e WHERE ej.name = 'John' and e.salary > ej.salary
SELECT DISTINCT e.dept FROM EmpBean e where e.salary < 20000
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.
SELECT avg(e.salary) FROM EmpBean e
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
Beispiel: Gültige dynamische Abfragen
SELECT { ALL | DISTINCT } [ selection , ]* selection selection ::= { expression | scalar-subselect [[AS] id ] }
Eine skalare Unterauswahl ist eine Unterauswahl, die einen einzelnen Wert zurückgibt.
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