카테고리:

비트 식 함수

BITNOT

숫자 식 또는 이진 식의 비트 부정을 반환합니다.

별칭:

BIT_NOT

구문

BITNOT( <expr> )
Copy

인자

expr

이 식은 INTEGER 값, BINARY 값 또는 INTEGER 값으로 캐스팅될 수 있는 데이터 타입의 값으로 계산되어야 합니다.

반환

INTEGER 값, BINARY 값 또는 NULL을 반환합니다.

  • 입력 식에 INTEGER 값이 포함된 경우 입력 식의 비트 부정을 나타내는 INTEGER 값을 반환합니다.

  • 입력 식에 BINARY 값이 포함된 경우 입력 식의 비트 부정을 나타내는 BINARY 값을 반환합니다.

  • 입력 값이 NULL인 경우, NULL을 반환합니다.

사용법 노트

  • 인자의 데이터 타입이 숫자형 이지만 INTEGER 는 아닌 경우(예: FLOAT, DECIMAL 등), 해당 인자는 INTEGER 값으로 캐스팅됩니다.

  • 인자의 데이터 타입이 문자열(예: VARCHAR)인 경우, 가능한 경우 해당 인자는 INTEGER 값으로 캐스팅됩니다. 예를 들어, 문자열 12.312 로 캐스팅됩니다. 값을 INTEGER 값으로 캐스팅할 수 없는 경우, 값은 NULL로 처리됩니다.

  • 이 함수는 암시적으로 인자를 BINARY 값으로 캐스팅하지 않습니다.

다음 섹션에는 INTEGER 인자 값과 BINARY 인자 값에 대한 예가 포함되어 있습니다.

INTEGER 인자 값과 함께 BITNOT 사용하기

간단한 테이블과 데이터를 만듭니다.

CREATE OR REPLACE TABLE bits (ID INTEGER, bit1 INTEGER, bit2 INTEGER);
Copy
INSERT INTO bits (ID, bit1, bit2) VALUES 
  (   11,    1,     1),    -- Bits are all the same.
  (   24,    2,     4),    -- Bits are all different.
  (   42,    4,     2),    -- Bits are all different.
  ( 1624,   16,    24),    -- Bits overlap.
  (65504,    0, 65504),    -- Lots of bits (all but the low 6 bits).
  (    0, NULL,  NULL)     -- No bits.
  ;
Copy

쿼리를 실행합니다.

SELECT bit1, 
       bit2, 
       BITNOT(bit1), 
       BITNOT(bit2)
  FROM bits
  ORDER BY bit1;
Copy
+------+-------+--------------+--------------+
| BIT1 |  BIT2 | BITNOT(BIT1) | BITNOT(BIT2) |
|------+-------+--------------+--------------|
|    0 | 65504 |           -1 |       -65505 |
|    1 |     1 |           -2 |           -2 |
|    2 |     4 |           -3 |           -5 |
|    4 |     2 |           -5 |           -3 |
|   16 |    24 |          -17 |          -25 |
| NULL |  NULL |         NULL |         NULL |
+------+-------+--------------+--------------+

BINARY 인자 값과 함께 BITNOT 사용하기

간단한 테이블을 만들고 데이터를 삽입합니다.

CREATE OR REPLACE TABLE bits (ID INTEGER, bit1 BINARY(2), bit2 BINARY(2), bit3 BINARY(4));

INSERT INTO bits VALUES
  (1, x'1010', x'0101', x'11001010'),
  (2, x'1100', x'0011', x'01011010'),
  (3, x'BCBC', x'EEFF', x'ABCDABCD'),
  (4, NULL, NULL, NULL);
Copy

참고

BINARY 값은 x'value' 표기법을 사용하여 삽입되며, 여기서 value 는 16진수 숫자를 포함합니다. 자세한 내용은 바이너리 입력 및 출력 섹션을 참조하십시오.

쿼리를 실행합니다.

SELECT bit1,
       bit2,
       bit3,
       BITNOT(bit1),
       BITNOT(bit2),
       BITNOT(bit3)
  FROM bits;
Copy
+------+------+----------+--------------+--------------+--------------+
| BIT1 | BIT2 | BIT3     | BITNOT(BIT1) | BITNOT(BIT2) | BITNOT(BIT3) |
|------+------+----------+--------------+--------------+--------------|
| 1010 | 0101 | 11001010 | EFEF         | FEFE         | EEFFEFEF     |
| 1100 | 0011 | 01011010 | EEFF         | FFEE         | FEFEEFEF     |
| BCBC | EEFF | ABCDABCD | 4343         | 1100         | 54325432     |
| NULL | NULL | NULL     | NULL         | NULL         | NULL         |
+------+------+----------+--------------+--------------+--------------+