OceanBase 比较运算符
以下为所有比较运算符列表:
运算符 |
操作数 |
含义 |
NULL 参与运算 |
---|---|---|---|
|
二元 |
等于。 |
结果为 NULL。 |
|
二元 |
不等于。 |
结果为 NULL。 |
|
二元 |
大于。 |
结果为 NULL。 |
|
二元 |
大于等于。 |
结果为 NULL。 |
|
二元 |
小于。 |
结果为 NULL。 |
|
二元 |
小于等于。 |
结果为 NULL。 |
|
二元 |
是否在集合中。 |
详见下方说明。 |
|
三元 |
是否在区间内。 |
详见下方说明。 |
|
一元 |
是否等于TRUE。 |
结果为 TRUE 或 FALSE。 |
|
一元 |
是否等于FALSE。 |
结果为 TRUE 或 FALSE。 |
|
一元 |
是否等于NULL。 |
结果为 TRUE 或 FALSE。 |
|
二元 |
安全等于。 |
结果为 TRUE 或 FALSE。 |
以下为部分运算符对 NULL 的特殊处理:
-
value [NOT] IN ():
-
value
为 NULL 时,结果为 NULL。 -
value
不为 NULL、且集合包含 NULL 时,如果集合中有非 NULL 值与 value 相等,则结果为 TRUE,否则为 NULL。 -
value [NOT] BETWEEN lower AND upper:
-
value
为 NULL、或 lower
和 upper
都为 NULL 时,结果为 NULL。 -
value
不为 NULL、且只有lower/upper
为 NULL 时,如果只通过 value
和 lower/upper
就能确定运算结果,则直接使用这个结果,否则返回 NULL。
例如:
obclient> SELECT 1 IN (1, NULL), 1 IN (2, NULL);
+----------------+----------------+
| 1 IN (1, NULL) | 1 IN (2, NULL) |
+----------------+----------------+
| 1 | NULL |
+----------------+----------------+
1 row in set (0.01 sec)
obclient> SELECT 1 BETWEEN 0 AND NULL, 1 BETWEEN 2 AND NULL;
+----------------------+----------------------+
| 1 BETWEEN 0 AND NULL | 1 BETWEEN 2 AND NULL |
+----------------------+----------------------+
| NULL | 0 |
+----------------------+----------------------+
1 row in set (0.01 sec)