- 类别:
BOOLXOR¶
计算两个数值表达式的布尔 XOR 值(即其中一个表达式为 True,但不是两个表达式都为 True)。根据布尔语义:
非零值(包括负数)被视为 True。
零值被视为 False。
因此,该函数返回:
True,如果一个表达式为非零,而另一个表达式为零。False,如果两个表达式都为非零或两个表达式均为零。NULL,如果一个或两个表达式都是 NULL。
语法¶
实参¶
expr1数值表达式。
expr2数值表达式。
返回¶
此函数返回 BOOLEAN 类型的值或 NULL。
使用说明¶
此函数对 浮点数 进行四舍五入。因此,当它将非零浮点数舍入为零时,可能会返回意外结果。
有关此行为和替代方案的示例,请参阅 计算浮点数的布尔 XOR 结果。
示例¶
以下示例使用 BOOLXOR 函数。
计算整数和 NULL 值的布尔 XOR 结果¶
以下查询计算整数和 NULL 值的布尔 XOR 结果:
计算浮点数的布尔 XOR 结果¶
以下示例演示了该函数如何为舍入为零的浮点数返回意外结果。
对于以下查询,预期以下函数调用的结果应为 False,但由于该函数会将非零浮点数值舍入为零,因此实际返回 True:
同样,预期以下函数调用的结果应为 True,但实际返回 False:
如有需要,您可以使用 CEIL 函数来规避对正浮点数值的舍入行为。例如,以下查询会返回 False:
对于负浮点值,您可以使用 FLOOR 函数来解决这种舍入行为。例如,以下查询会返回 False: