副照会
副照会は、比較述部、EXISTS 述部、 または IN 述部で使用することができます。 副照会は、SELECT 文節内の単一エレメントのみを指定します。
パス式が副照会内に現れる場合、そのパス式の識別変数は、副照会、 含んでいる副照会の 1 つ、または外部照会のいずれかで定義されなければなりません。 スカラー副照会とは、1 つの値を戻す副照会です。 スカラー副照会は、基本述部、および動的照会の SELECT 文節で使用することができます。
例: 副照会
SELECT OBJECT(e) FROM EmpBean e WHERE e.salary > ( SELECT AVG(e1.salary) FROM EmpBean e1)
上記の照会は、すべての従業員の平均給料より多い報酬を得ている従業員を戻します。
SELECT OBJECT(e) FROM EmpBean e WHERE e.salary > ( SELECT AVG(e1.salary) FROM IN (e.dept.emps) e1 )
上記の照会は、部門内の平均給料より多い報酬を得ている従業員を戻します。
SELECT OBJECT(e) FROM EmpBean e WHERE e.salary = ( SELECT MAX(e1.salary) FROM IN (e.dept.emps) e1 )
上記の照会は、部門内で最も高い報酬を得ている従業員を戻します。
SELECT OBJECT(e) FROM EmpBean e WHERE e.salary > ( SELECT AVG(e.salary) FROM EmpBean e1 WHERE YEAR(e1.hireDate) = YEAR(e.hireDate) )
上記の照会は、同じ年に雇用された従業員の平均より多い報酬を得ている従業員を戻します。