更新日期:2024年09月11日
XOR 逻辑异或
语法
a XOR b 等价于(a AND (NOT b)) OR ((NOT a) AND b)
操作符说明
当任意一个操作数为NULL 时,返回值为NULL。
对于非NULL 的操作数:
XOR
真(1)
假(0)
真(1)
假
真
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
664
XOR
真(1)
假(0)
假(0)
真
假
就是说两个值不相同,则异或结果为真,反之,为假。
示例
示例1:操作数不是NULL,真异或真,结果为假,即返回值为0。
gbase> SELECT 1 XOR 1 FROM dual;
+---------+
| 1 XOR 1 |
+---------+
|
0 |
+---------+
1 row in set
示例2:操作数不是NULL,真异或假,结果为真,即返回值为1。
gbase> SELECT 1 XOR 0 FROM dual;
+---------+
| 1 XOR 0 |
+---------+
|
1 |
+---------+
1 row in set
示例3:任意一个操作数为NULL,则结果为NULL。
gbase> SELECT 1 XOR NULL FROM dual;
+-------------+
| 1 XOR NULL
|
+-------------+
|
NULL |
+-------------+
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
665
1 row in set
gbase> SELECT 0 XOR NULL FROM dual;
+-------------+
| 0 XOR NULL
|
+-------------+
|
NULL |
+-------------+
1 row in set
示例4:a XOR b 等价于(a AND (NOT b)) OR ((NOT a) AND b)。
gbase> SELECT 1 XOR 0 FROM dual;
+---------+
| 1 XOR 0 |
+---------+
|
1 |
+---------+
1 row in set
gbase> SELECT (1 AND (NOT 0)) OR ((NOT 1) AND 0) ;
+------------------------------------+
| (1 AND (NOT 0)) OR ((NOT 1) AND 0) |
+------------------------------------+
|
1 |
+------------------------------------+
1 row in set
示例5:将同一个数异或比较后的结果,再次与该数进行异或比较,则结果为1。
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
666
gbase> SELECT 1 XOR 1 XOR 1 FROM dual;
+---------------+
| 1 XOR 1 XOR 1 |
+---------------+
|
1 |
+---------------+
1 row in set