Последнее обновление
BIT_TEST
Описание
Преобразует значение <x> в двоичное представление и возвращает значение для указанных позиций <bits>, где нумерация <bits> начинается с 0 (крайний правый бит).
Если <bits> содержит несколько значений, значения битов в этих позициях объединяются с помощью оператора AND, и возвращается итоговый результат.
Если какое-либо значение в <bits> отрицательно или превышает общее число битов в <x>, результат равен 0.
Поддерживаемые целочисленные типы для <x>: TINYINT, SMALLINT, INT, BIGINT, LARGEINT.
Псевдоним
- BIT_TEST_ALL
Синтаксис
BIT_TEST(<x>, <bits>[, <bits> ... ])
Параметры
<x><bits>
Возвращаемое значение
Возвращает значение для указанных позиций.
Примеры
- Пример 1
select BIT_TEST(43, 1), BIT_TEST(43, -1), BIT_TEST(43, 2), BIT_TEST(43, 0, 1, 3, 5), BIT_TEST(43, 0, 1, 3, 5, 2);+-----------------+------------------+-----------------+--------------------------+-----------------------------+
| BIT_TEST(43, 1) | BIT_TEST(43, -1) | BIT_TEST(43, 2) | BIT_TEST(43, 0, 1, 3, 5) | BIT_TEST(43, 0, 1, 3, 5, 2) |
+-----------------+------------------+-----------------+--------------------------+-----------------------------+
| 1 | 0 | 0 | 1 | 0 |
+-----------------+------------------+-----------------+--------------------------+-----------------------------+Двоичное представление числа 43 — "101011", поэтому
BIT_TEST(43, 1)возвращает 1,BIT_TEST(43, 2)возвращает 0, аBIT_TEST(43, 0, 1, 3, 5)возвращает 1.BIT_TEST(43, 0, 1, 3, 5, 2)возвращает 0. - Аргумент NULL
select BIT_TEST(NULL, 1), BIT_TEST(43, NULL), BIT_TEST(NULL, NULL);+-------------------+--------------------+----------------------+
| BIT_TEST(NULL, 1) | BIT_TEST(43, NULL) | BIT_TEST(NULL, NULL) |
+-------------------+--------------------+----------------------+
| NULL | NULL | NULL |
+-------------------+--------------------+----------------------+