Поделиться через


BIT_COUNT (Transact SQL)

Область применения: SQL Server 2022 (16.x) База данных SQL Azure Управляемый экземпляр SQL Azure конечную точку аналитики SQL в хранилище Microsoft Fabric в Microsoft Fabric

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) не будет поддерживаться.

Примеры

А. Вычисление BIT_COUNT в двоичном значении

В следующем примере вычисляется число битов, значение которых равно 1 в двоичном значении.

SELECT BIT_COUNT ( 0xabcdef ) as Count;

Результат 17. Это связано с тем, что 0xabcdef в двоичном файле — это 1010 1011 1100 1101 1110 1111, и есть 17 битов со значением равным 1.

B. Вычисление BIT_COUNT в целочисленном виде

В следующем примере вычисляется число битов, значение которых равно 1, в целочисленном значении.

SELECT BIT_COUNT ( 17 ) as Count;

Результат 2. Это связано с тем, что 17 в двоичном файле — это 0001 0001, и есть только 2 бита со значением равным 1.

См. также