DISTINCT谓词

DISTINCT 谓词将一个值与另一个值进行比较。

读取语法图跳过可视语法图表达式ISNOTDISTINCT FROM表达式

当谓词为 IS DISTINCT 时,如果表达式的比较求值为 true ,那么谓词的结果为 true。 否则,谓词的结果为 false。 结果不能是未知的。

当谓词 IS NOT DISTINCT FROM 时,如果表达式的比较求值为 true (空值被视为等于空值) ,那么谓词的结果为 true。 否则,谓词的结果为 false。 结果不能是未知的。

DISTINCT 谓词:

   value1 IS NOT DISTINCT FROM value2 

在逻辑上等同于搜索条件:

   ( value1 IS NOT NULL AND value2 IS NOT NULL AND value1 = value2 ) 
         OR
   ( value1 IS NULL AND value2 IS NULL )

DISTINCT 谓词:

   value1 IS DISTINCT FROM value2 

在逻辑上等同于搜索条件:

NOT (value1 IS NOT DISTINCT FROM  value2) 

如果 DISTINCT 谓词的操作数是具有不同 CCSID 的字符串,那么将转换操作数,就像指定了上述逻辑上等效的搜索条件一样。

如果谓词的操作数是 SBCS 数据,混合数据或 Unicode 数据,并且如果执行语句时生效的整理顺序不是 *HEX ,那么将使用操作数的加权值来执行操作数的比较。 加权值基于整理顺序。

示例

假定表 T1 存在,并且它具有单列 C1以及具有以下 C1: 1 , 2 , null。 以下查询将生成以下结果:

   SELECT * FROM T1 
      WHERE C1 IS DISTINCT FROM :HV:IND
C1 HV:IND 结果
1 2 True
2 2
1 True

以下查询将生成以下结果:

   SELECT * FROM T1 
      WHERE C1 IS NOT DISTINCT FROM :HV:IND
C1 HV:IND 结果
1 2
2 2 True
1
True