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
.