다음을 통해 공유


비트 조작 함수

적용 대상: Microsoft Fabric의 Microsoft Fabric Warehouse에 있는 SQL Server 2022(16.x) Azure SQL Database Azure SQL Managed Instance SQL 분석 엔드포인트

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

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

예를 들어 이진 시퀀스는 7 숫자의 10진수인 00000111와 같습니다. 다음과 같이 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, xmltable 형식은 지원되지 않습니다.

설명

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