- 类别:
BITAND¶
返回两个数值表达式按位进行 AND 运算的值。
- 别名:
BIT_AND
- 另请参阅:
语法¶
BITAND( <expr1> , <expr2> )
实参¶
expr1
此表达式的计算结果必须是可以转换为
INTEGER
的数据类型。expr2
此表达式的计算结果必须是可以转换为
INTEGER
的数据类型。
返回¶
返回一个整数,它表示对输入表达式按位进行 AND 运算的值。
使用说明¶
如果任一实参的数据类型是数字,但不是
INTEGER
(例如 FLOAT、DECIMAL 等),则该实参将转换为INTEGER
。如果任一实参的数据类型是字符串(例如
VARCHAR
),则该实参将尽可能转换为INTEGER
。例如,字符串“12.3”将转换为 12。如果该值无法转换为INTEGER
,则该值被视为 NULL。如果任一值为 NULL,则结果为 NULL。
示例¶
此示例说明如何使用 BITAND()
、BITOR()
和 BITXOR()
:
创建简单的表和数据:
CREATE TABLE bits (ID INTEGER, bit1 INTEGER, bit2 INTEGER);INSERT INTO bits (ID, bit1, bit2) VALUES ( 11, 1, 1), -- Bits are all the same. ( 24, 2, 4), -- Bits are all different. ( 42, 4, 2), -- Bits are all different. ( 1624, 16, 24), -- Bits overlap. (65504, 0, 65504), -- Lots of bits (all but the low 6 bits) ( 0, NULL, NULL) -- No bits ;执行查询:
SELECT bit1, bit2, BITAND(bit1, bit2), BITOR(bit1, bit2), BITXOR(bit1, BIT2) FROM bits ORDER BY bit1;输出:
+------+-------+--------------------+-------------------+--------------------+ | BIT1 | BIT2 | BITAND(BIT1, BIT2) | BITOR(BIT1, BIT2) | BITXOR(BIT1, BIT2) | |------+-------+--------------------+-------------------+--------------------| | 0 | 65504 | 0 | 65504 | 65504 | | 1 | 1 | 1 | 1 | 0 | | 2 | 4 | 0 | 6 | 6 | | 4 | 2 | 0 | 6 | 6 | | 16 | 24 | 16 | 24 | 8 | | NULL | NULL | NULL | NULL | NULL | +------+-------+--------------------+-------------------+--------------------+