- 类别:
BOOLOR¶
计算两个数值表达式的布尔值 OR。根据布尔语义:
Non-zero values, including negative numbers, are regarded as true.
Zero values are regarded as false.
因此,该函数返回:
True,如果两个表达式均为非零,或者一个表达式为非零,而另一个表达式为零,否则返回 NULL。False,如果两个表达式都为零。NULL,如果两个表达式都是 NULL 或者一个表达式是 NULL ,另一个表达式为零。
语法¶
BOOLOR( <expr1> , <expr2> )
实参¶
expr1数值表达式。
expr2数值表达式。
返回¶
此函数返回 BOOLEAN 类型的值或 NULL。
使用说明¶
此函数对 浮点数 进行四舍五入。因此,当它将非零浮点数舍入为零时,可能会返回意外结果。
有关此行为和替代方案的示例,请参阅 计算浮点数的布尔 OR 结果。
示例¶
以下示例使用 BOOLOR 函数。
计算整数和 NULL 值的布尔 OR 结果¶
以下查询计算整数和 NULL 值的布尔 OR 结果:
SELECT BOOLOR(1, 2),
BOOLOR(0, 2),
BOOLOR(3, NULL),
BOOLOR(0, 0),
BOOLOR(NULL, 0),
BOOLOR(NULL, NULL);
+--------------+--------------+-----------------+--------------+-----------------+--------------------+
| BOOLOR(1, 2) | BOOLOR(0, 2) | BOOLOR(3, NULL) | BOOLOR(0, 0) | BOOLOR(NULL, 0) | BOOLOR(NULL, NULL) |
|--------------+--------------+-----------------+--------------+-----------------+--------------------|
| True | True | True | False | NULL | NULL |
+--------------+--------------+-----------------+--------------+-----------------+--------------------+
计算浮点数的布尔 OR 结果¶
以下示例演示了该函数如何为舍入为零的浮点数返回意外结果。
对于以下查询,预期以下函数调用的结果应为 True,但由于该函数会将非零浮点数值舍入为零,因此实际返回 False:
SELECT BOOLOR(0.4, 0.3);
+------------------+
| BOOLOR(0.4, 0.3) |
|------------------|
| False |
+------------------+
SELECT BOOLOR(-0.4, 0.3);
+-------------------+
| BOOLOR(-0.4, 0.3) |
|-------------------|
| False |
+-------------------+
对于以下查询,预期以下函数调用的结果应为 True,但实际返回 NULL:
SELECT BOOLOR(0.4, NULL);
+-------------------+
| BOOLOR(0.4, NULL) |
|-------------------|
| NULL |
+-------------------+
SELECT BOOLOR(-0.4, NULL);
+--------------------+
| BOOLOR(-0.4, NULL) |
|--------------------|
| NULL |
+--------------------+
如有需要,您可以使用 OR 逻辑运算符 替代该函数,以规避对浮点数的舍入行为。例如,以下查询会返回 True:
SELECT 0.4 OR 0.3;
+------------+
| 0.4 OR 0.3 |
|------------|
| True |
+------------+