📜  sql 位运算符 - SQL (1)

📅  最后修改于: 2023-12-03 14:47:37.243000             🧑  作者: Mango

SQL位运算符

在SQL中,位运算符可以对二进制数字执行按位操作。以下是SQL中可用的位运算符:

| 运算符 | 描述 | | --- | --- | | & | 按位AND。如果两个位都是1,则结果为1。否则为0。 | | | | 按位OR。如果两个位中的一个为1,则结果为1。否则为0。 | | ^ | 按位XOR。如果两个位中只有一个位为1,则结果为1。否则为0。 | | ~ | 按位NOT。翻转所有位。 |

AND运算符

AND运算符返回两个二进制数字中的相同位,只有这些位都是1时才返回1。否则,所有返回位均为0。

示例:

SELECT 10 & 6; -- 结果为2
-- 10的二进制是1010,6的二进制是0110,
-- 1010 & 0110即为0010,转化为10进制即为2。
OR运算符

OR运算符返回两个二进制数字中的所有位中的任何位,只要其中至少有一个位是1,则返回1。如果两个二进制数字的所有位都是0,则OR运算符返回0。

示例:

SELECT 10 | 6; -- 结果为14
-- 10的二进制是1010,6的二进制是0110,
-- 1010 | 0110即为1110,转化为10进制即为14。
XOR运算符

XOR运算符返回两个二进制数字中的相同位中只有一个位是1的所有位,如果两个二进制数字中的相同位都是0或都是1,则返回0。

示例:

SELECT 10 ^ 6; -- 结果为12
-- 10的二进制是1010,6的二进制是0110,
-- 1010 ^ 0110即为1100,转化为10进制即为12。
NOT运算符

NOT运算符将二进制数字的每个位,1变为0,0变为1。

示例:

SELECT ~10; -- 结果为-11
-- 10的二进制是1010,
-- ~1010的结果为-1011,转换为10进制即为-11。

注意:在使用NOT运算符时,需要将二进制数字扩展到其数据类型的完整长度。

这就是SQL中的位运算符。要了解更多相关信息,请查看相关文档。