Перейти к содержимому
Последнее обновление

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. Пример 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.

  2. Аргумент 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 |
    +-------------------+--------------------+----------------------+