본문으로 건너뛰기
최종 수정: 에

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 |
    +-------------------+--------------------+----------------------+