Null 值语义

以下内容描述 NULL 值的语义。

  • 使用未知的 (NULL) 值进行比较或算术运算会得到未知的值
  • 在 Java 2 platform, Enterprise Edition (J2EE) V1.3 应用程序中,路径表达式使用外连接语义,在该外连接语义中,NULL 字段或 cmr 值求值结果为 NULL。在 J2EE V1.4 中,路径表达式使用内连接语义。
  • IS NULL 和 IS NOT NULL 运算符可以应用于路径表达式,并返回 TRUE 或 FALSE。布尔运算符 AND、OR 和 NOT 使用三个值的逻辑。
表 1. Null 值语义. 下表描述 NULL 值的语义。
AND True False 未知
True True False 未知
False False False False
未知 未知 False 未知
表 2. Null 值语义. 下表描述 NULL 值的语义。
OR True False 未知
True True True True
False True False 未知
未知 True 未知 未知
表 3. Null 值语义. 下表描述 NULL 值的语义。
  NOT
True False
False True
未知 未知

示例:Null 值语义

select object(e) from EmpBean where e.salary > 10  and e.dept.budget > 100

如果月薪是 NULL,那么 e.salary > 10 的求值返回未知,且不返回职员对象。如果 cmr 字段 dept 或 budget 为 NULL,那么 e.dept.budget > 100 的求值返回未知,且不返回职员对象。

select object(e) from EmpBean where e.dept.budget is null

在 J2EE 1.3 中,如果 dept 或 budget 是 NULL,那么 e.dept.budget 为空值的求值返回 TRUE,并且返回职员对象。在 J2EE 1.4 中,仅当 budget 是 NULL 时才返回职员对象。

select object(e) from EmpBean e ,  in (e.dept.emps) e1 where e1.salary > 10

如果 dept 是 NULL,那么多值路径表达式 e.dept.emps 产生空的集合(不是包含 NULL 值的集合)。不会返回 dept 值为 null 的职员。

select object(e) from EmpBean e where  e.dept.emps is empty

如果 dept 是 NULL,那么谓词的求值为未知,且不返回职员对象。

select object(e) from EmpBean e , EmpBean e1  where e member of  e1.dept.emps

如果 dept 是 NULL,那么谓词的成员的求值返回未知,且不返回职员。


指示主题类型的图标 概念主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cque_nvsemant
文件名:cque_nvsemant.html