다음을 통해 공유


BIT_COUNT(Transact SQL)

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

BIT_COUNT 하나의 매개 변수를 사용하고 해당 매개 변수에서 1로 설정된 비트 수를 bigint 형식으로 반환합니다.

Transact-SQL 구문 표기 규칙

구문

BIT_COUNT ( expression_value )

인수

expression_value

큰 개체가 아닌 정수 또는 이진 식(LOB)입니다.

반환 형식

bigint

BIT_COUNT 비트 수를 계산하기 전에 캐스팅되지 않습니다. 이는 동일한 숫자가 데이터 형식에 따라 이진 표현에서 다른 개수를 가질 수 있기 때문입니다.

예를 들어 SELECT BIT_COUNT (CAST (-1 AS SMALLINT))SELECT BIT_COUNT (CAST (-1 AS INT)) 각각 16 반환하고 32. 이는 -1 이진 표현이 데이터 형식에 따라 다른 수의 비트가 1 설정될 수 있기 때문에 의도된 것입니다.

설명

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

데이터베이스 엔진의 LOB(큰 개체) 데이터 형식은 8,000바이트를 초과하는 데이터를 저장할 수 있습니다. 이러한 데이터 형식은 행 오버플로 데이터 페이지에 데이터를 저장합니다. LOB는 LOB 데이터 페이지에 대한 행 내 참조의 텍스트 또는 이미지 포인터를 사용하는 전용 LOB 페이지 구조에 데이터를 저장하는 데이터 형식도 포함합니다. 데이터 스토리지에 대한 자세한 내용은 페이지 및 익스텐트 아키텍처 가이드참조하세요.

비트 조작 함수는 tinyint, smallint, int, bigint, binary(n)varbinary(n) 데이터 형식에서 작동합니다. LOB(큰 개체) 데이터 형식, varchar(max), nvarchar(max), varbinary(max), 이미지, ntext, 텍스트, xml및 CLR(공용 언어 런타임) BLOB 형식은 지원되지 않습니다.

A. 이진 값으로 BIT_COUNT 계산

다음 예제에서는 이진 값에서 1로 설정된 비트 수를 계산합니다.

SELECT BIT_COUNT(0xabcdef) AS Count;

결과는 17입니다. 이는 이진의 0xabcdef1010 1011 1100 1101 1110 1111이고 값이 1로 설정된 17비트가 있기 때문입니다.

B. 정수의 BIT_COUNT 계산

다음 예제에서는 정수에서 1로 설정된 비트 수를 계산합니다.

SELECT BIT_COUNT(17) AS Count;

결과는 2입니다. 이는 이진의 170001 0001이고 값이 1로 설정된 2비트가 있기 때문입니다.