비트 조작 함수

적용 대상: SQL Server 2022 (16.x) Azure SQL 데이터베이스Azure SQL Managed InstanceSQL Analytics endpoint in Microsoft Fabric Warehouse SQL데이터베이스 in Microsoft Fabric

비트 조작 함수를 사용하면 정수 또는 이진 값 내에서 단일 비트를 이동, 검색(가져오기), 설정 또는 계산하고 개별 비트보다 데이터를 더 효율적으로 처리하고 저장할 수 있습니다.

bit에는 두 개의 값(1 또는 0, on 또는 off를 나타내는 true 또는 false)이 있습니다. 바이트는 8비트의 시퀀스로 구성됩니다. SQL Server의 비트 조작 함수는 바이트의 "가장 왼쪽" 비트를 가장 큰 비트(가장 중요한)로 처리합니다. 비트 조작 함수에 대해 비트는 오른쪽에서 왼쪽으로 번호가 매겨지고 0 비트는 가장 오른쪽이며 가장 작고 7 비트는 가장 왼쪽이며 가장 큽니다.

예를 들어 이진 시퀀스는 00000111 숫자의 10진수인 7와 같습니다. 다음과 같이 2의 거듭제곱을 사용하여 계산할 수 있습니다.

00000111 = (2^2 + 2^1 + 2^0 = 4 + 2 + 1 = 7)

실제로 SQL Server는 이 값을 11100000(바이트 반전)으로 저장하지만 비트 조작 함수는 이 값을 00000111처럼 처리합니다.

여러 바이트가 있는 경우 첫 번째 바이트(왼쪽에서 오른쪽으로 읽기)가 가장 큰 것입니다.

다음 이미지를 사용하여 SQL Server 비트 조작 함수가 비트 및 바이트 식 값과 비트 오프셋을 해석하는 방법을 시각화할 수 있습니다.

int

4바이트가 왼쪽에서 오른쪽으로 각 바이트의 반전된 2진을 나타내는 int 값을 보여주는 다이어그램.

smallint

첫 번째 바이트가 비트 15~8을 나타내고 두 번째 바이트가 비트 7~0을 나타내는 작은 int 값을 보여주는 다이어그램.

함수

SQL Server의 비트를 조작하는 데 사용할 수 있는 5가지 함수는 다음과 같습니다.

다섯 가지 함수는 모두 tinyint, smallint, int, bigint, binary(n) 및 varbinary(n) 데이터 형식에서 작동합니다.

varchar, nvarchar, image, ntext, text, xml 및 table 형식은 지원되지 않습니다.

설명

초기 구현에서는 연결된 서버 내의 비트 조작 함수 또는 OPENQUERY(임시 쿼리)에 대한 분산 쿼리 기능이 지원되지 않습니다.