SELECT clause

For finder and select queries, the syntax of the SELECT clause is illustrated in the following example

SELECT  [  ALL | DISTINCT  ]  
  { single-valued-path-expression  |  aggregation expression  |  OBJECT ( identification-variable )  }

The SELECT clause consists of either a single identification variable that is defined in the FROM clause, or a single valued path expression that evaluates to a object reference or CMP value. Use the DISTINCT keyword to eliminate duplicate references.

For a query that defines a finder method, the query must return an object type consistent with the home that is associated with the finder method. For example, a finder method for a department home can not return employee objects.

A scalar-subselect is a subselect that returns a single value.

 

Example: SELECT clause

Find all employees that

earn more than John

SELECT OBJECT(e) FROM EmpBean ej, EmpBean e 
WHERE  ej.name = 'John'  and e.salary > ej.salary

Find all departments that have one or more employees who earn less than 20000

SELECT DISTINCT  e.dept  FROM EmpBean e where e.salary < 20000

A select method query can have a path expression that evaluates to an arbitrary value

SELECT  e.dept.name  FROM EmpBean e where e.salary < 2000

The previous query returns a collection of name values for those departments having employees earning less than 20000.

A select method query can return an aggregate value

SELECT  avg(e.salary)  FROM EmpBean e


 

See Also


EJB query language

 

Related Tasks


Using EJB query