BIT_OR
Синтаксис
BIT_OR(expr) [over_clause]
Описание
Возвращает побитовое ИЛИ всех битов в expr. Вычисление выполняется с точностью 64 бита (BIGINT). Это агрегатная функция, и её можно использовать с предложением GROUP BY.
Если ни одна строка не соответствует условию, BIT_OR вернёт значение со всеми битами, установленными в 0. Значения NULL не влияют на результат, за исключением случая, когда все результаты — NULL, что рассматривается как отсутствие соответствия.
BIT_OR может использоваться как оконная функция с добавлением over_clause.
Примеры
CREATE TABLE vals (x INT); INSERT INTO vals VALUES(111),(110),(100); SELECT BIT_AND(x), BIT_OR(x), BIT_XOR(x) FROM vals; +------------+-----------+------------+ | BIT_AND(x) | BIT_OR(x) | BIT_XOR(x) | +------------+-----------+------------+ | 100 | 111 | 101 | +------------+-----------+------------+
В качестве агрегатной функции:
CREATE TABLE vals2 (category VARCHAR(1), x INT);
INSERT INTO vals2 VALUES
('a',111),('a',110),('a',100),
('b','000'),('b',001),('b',011);
SELECT category, BIT_AND(x), BIT_OR(x), BIT_XOR(x)
FROM vals GROUP BY category;
+----------+------------+-----------+------------+
| category | BIT_AND(x) | BIT_OR(x) | BIT_XOR(x) |
+----------+------------+-----------+------------+
| a | 100 | 111 | 101 |
| b | 0 | 11 | 10 |
+----------+------------+-----------+------------+
Отсутствие соответствия:
SELECT BIT_OR(NULL); +--------------+ | BIT_OR(NULL) | +--------------+ | 0 | +--------------+
См. также
Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется предварительно компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают взгляды MariaDB или любой другой стороны.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/bit_or/