BIT_OR
采用所有非空输入值的按位 OR。如果输入参数为 NULL,那么返回值也将为 NULL。
行为类型
不可变语法
BIT_OR ( expression )
参数
- 表达式
- 要求值的 BINARY 或 VARBINARY 输入值。BIT_OR 以显式方式对 VARBINARY 类型进行操作,并通过 casts 以隐式方式对 BINARY 类型进行操作。
返回
BIT_OR
返回:
-
与实参数据类型相同的值。
-
1 — 对于比较的每个位,如果任意位为 1,否则为 0。
如果列具有不同长度,那么处理这些这些返回值时,会将其当作长度相同且使用零字节向右扩展的值。例如,假设组中包含十六进制值 ff
、null
和 f
,该函数将忽略 null 值并将值 f
扩展为 f0
。
示例
示例使用 t
表,该表在单个列中包含了 VARBINARY
数据类型:
=> CREATE TABLE t ( c VARBINARY(2) );
=> INSERT INTO t values(HEX_TO_BINARY('0xFF00'));
=> INSERT INTO t values(HEX_TO_BINARY('0xFFFF'));
=> INSERT INTO t values(HEX_TO_BINARY('0xF00F'));
查询表 t
以查看列 c
输出:
=> SELECT TO_HEX(c) FROM t;
TO_HEX
--------
ff00
ffff
f00f
(3 rows)
查询表t
以获取列c
的 OR 值:
=> SELECT TO_HEX(BIT_OR(c)) FROM t;
TO_HEX
--------
ffff
(1 row)
该函数将成对应用于组中的所有值,由此导致 ffff
,具体由以下条件确定:
-
ff00
(记录 1)与ffff
进行比较,得到ffff
。 -
从上一比较中得到的
ff00
结果与f00f
(记录 3)进行比较,得到ffff
。