以下では、NULL 値のセマンティクスを説明しています。
AND | True | False | 不明 |
---|---|---|---|
True | True | False | 不明 |
False | False | False | False |
Unknown | 不明 | False | 不明 |
OR | True | False | 不明 |
---|---|---|---|
True | True | True | True |
False | True | False | 不明 |
Unknown | True | 不明 | 不明 |
NOT | |
---|---|
True | False |
False | True |
Unknown | 不明 |
select object(e) from EmpBean where e.salary > 10 and e.dept.budget > 100
給料が NULL の場合、e.salary > 10 の計算は unknown を戻し、 その従業員オブジェクトは戻されません。 cmr フィールド部門または予算が NULL の場合は、 e.dept.budget > 100 の計算は unknown を戻し、その従業員オブジェクトは戻されません。
select object(e) from EmpBean where e.dept.budget is null
J2EE 1.3 では、部門または予算が NULL で、 e.dept.budget の計算が NULL の場合は TRUE を戻し、その従業員オブジェクトは戻されます。 J2EE 1.4 では、従業員オブジェクトは、予算が NULL の場合にのみ戻されます。
select object(e) from EmpBean e , in (e.dept.emps) e1 where e1.salary > 10
部門が NULL の場合は、多価のパス式 e.dept.emps の結果は、空のコレクションになります (ヌル値を含むコレクションではありません)。 部門がヌル値の従業員は、戻されません。
select object(e) from EmpBean e where e.dept.emps is empty
部門が NULL の場合、この述部の計算は unknown を戻し、その従業員オブジェクトは戻されません。
select object(e) from EmpBean e , EmpBean e1 where e member of e1.dept.emps
部門が NULL の場合、述部のメンバーの計算は unknown を戻し、 その従業員は戻されません。