SELECT 절
SELECT 절은 FROM 절에 정의된 단일 ID 변수나 오브젝트 참조 또는 CMP(Container-Managed Persistence) 값으로 평가되는 단일 값의 경로 표현식으로 구성됩니다. DISTINCT 키워드를 사용하여 중복 참조를 제거할 수 있습니다.
파인더 및 선택 조회의 경우, SELECT 절의 구문은 다음 예에서 설명됩니다.
SELECT [ ALL | DISTINCT ] { single-valued-path-expression | aggregation expression | OBJECT ( identification-variable ) }
파인더 메소드를 정의하는 조회의 경우, 조회는 파인더 메소드가 조회와 연관되는 홈에 대해 일관된 오브젝트 유형을 리턴해야 합니다. 예를 들어, 부서 홈에 대한 파인더 메소드는 직원 오브젝트를 리턴할 수 없습니다.
예: SELECT 절
다음 조회는 John보다 급여가 높은 직원을 모두 찾습니다.
SELECT OBJECT(e) FROM EmpBean ej, EmpBean e WHERE ej.name = 'John' and e.salary > ej.salary
다음 조회는
급여가 20000 미만인 직원이 있는 부서를 모두 찾습니다.
SELECT DISTINCT e.dept FROM EmpBean e where e.salary < 20000
선택
메소드 조회는 임의의 값으로 평가되는 경로 표현식을 가질 수 있습니다.
SELECT e.dept.name FROM EmpBean e where e.salary < 2000
이전 조회는 급여가 20000 미만인 직원이 있는 부서의 이름 값 콜렉션을 리턴합니다.
선택된 메소드 조회는
총계 값을 리턴할 수 있습니다.
SELECT avg(e.salary) FROM EmpBean e
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[z/OS]](../images/ngzos.gif)
예: 유효한 동적 조회
동적 조회의 경우, 구문은 다음과 같습니다.
SELECT { ALL | DISTINCT } [ selection , ]* selection selection ::= { expression | scalar-subselect [[AS] id ] }
scalar-subselect는 단일 값을 리턴하는 subselect입니다.
다음은
동적 조회의 예입니다.
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