- 카테고리:
BITSHIFTLEFT¶
숫자 식의 비트를 왼쪽으로 n
자리 이동합니다.
- 별칭:
BIT_SHIFTLEFT
- 참고 항목:
구문¶
BITSHIFTLEFT( <expr1> , <n> )
인자¶
expr1
이 식은
INTEGER
로 캐스팅될 수 있는 데이터 타입으로 평가되어야 합니다.n
이동할 비트 수입니다.
반환¶
입력 데이터 값의 크기 또는 데이터 타입과 관계없이, 부호 있는 128비트(16바이트) 정수를 반환합니다.
사용법 노트¶
인자의 데이터 타입이 숫자이지만
INTEGER
는 아닌 경우(예: FLOAT, DECIMAL 등), 해당 인자는INTEGER
로 캐스팅됩니다.인자의 데이터 타입이 문자열인 경우(예:
VARCHAR
), 가능한 경우 인자가INTEGER
로 캐스팅됩니다. 예를 들어, 문자열 ‘12.3’은 12로 캐스팅됩니다. 값을INTEGER
로 캐스팅할 수 없는 경우, 값은 NULL로 처리됩니다.어떤 인자가 NULL인 경우, 결과는 NULL입니다.
결과는 부호 있는 정수입니다. 상위 비트의 값이 변경되면(0에서 1 또는 1에서 0으로) 결과의 부호가 반전됩니다. 예를 들어,
BITSHIFTLEFT(1, 127)
은 음수를 반환합니다.128비트 출력 값의 끝을 지나 이동된 비트는 삭제됩니다.
예¶
이 예는 BITSHIFTLEFT
및 BITSHIFTRIGHT
사용 방법을 보여줍니다.
간단한 테이블과 데이터를 만듭니다.
CREATE TABLE bits (ID INTEGER, bit1 INTEGER, bit2 INTEGER);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 ;쿼리를 실행합니다.
SELECT bit1, bit2, BITSHIFTLEFT(bit1, 1), BITSHIFTRIGHT(bit2, 1) FROM bits ORDER BY bit1;출력:
+------+-------+-----------------------+------------------------+ | BIT1 | BIT2 | BITSHIFTLEFT(BIT1, 1) | BITSHIFTRIGHT(BIT2, 1) | |------+-------+-----------------------+------------------------| | 0 | 65504 | 0 | 32752 | | 1 | 1 | 2 | 0 | | 2 | 4 | 4 | 2 | | 4 | 2 | 8 | 1 | | 16 | 24 | 32 | 12 | | NULL | NULL | NULL | NULL | +------+-------+-----------------------+------------------------+