Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Относится к: SQL Server 2022 (16.x)
База данных SQL Azure
AzureSQL Managed Instance
SQL analytics endpoint in Microsoft Fabric
Warehouse in Microsoft Fabric
SQL database in Microsoft Fabric
BIT_COUNT берёт один параметр и возвращает количество бит, равных 1 в этом параметре как bigint-тип .
Соглашения о синтаксисе Transact-SQL
Синтаксис
BIT_COUNT ( expression_value )
Аргументы
expression_value
Любое целочисленное или двоичное выражение, не являющееся крупным объектом (LOB).
Типы возвращаемых данных
bigint
BIT_COUNT не откастывает свой вход до подсчёта бит. Поскольку двоичное представление одного и того же числа зависит от его типа данных, результат зависит от типа входа.
Например, следующие запросы возвращают 16 и 32, соответственно:
SELECT BIT_COUNT(CAST (-1 AS SMALLINT)); -- Returns 16
SELECT BIT_COUNT(CAST (-1 AS INT)); -- Returns 32
BIT_COUNT возвращает NULL , когда expression_value является типом NULL поддерживаемого типа данных. Перед передачей нужно наложить нетипированный NULL литерал на поддерживаемый тип:
SELECT BIT_COUNT(CAST (NULL AS INT)); -- Returns NULL
Замечания
Функциональность распределённых запросов для функций управления битами внутри связанного сервера или ad hoc запросов (OPENQUERY) не поддерживается.
Типы данных больших объектов (LOB) в ядре СУБД могут хранить данные, превышающие 8000 байт. Эти типы данных хранят данные на странице данных с переполнением строк . LOB также включает типы данных, которые хранят данные на выделенных структурах страниц LOB, которые используют текстовый или изображенный указатель с ссылками в строке на страницы данных LOB. Дополнительные сведения о хранилище данных см. в руководстве по архитектуре страницы и экстентов.
Функции управления битами работают с типами данных tinyint, smallint, int, bigint, binary(n) и varbinary(n). Эти функции не поддерживают типы данных с крупными объектами (LOB), такие как varchar(max),nvarchar(max),varbinary(max), image, ntext, text, xml и типы BLOB для общего языка (CLR).
Примеры
А. Вычисление 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, у которого только два бита, установленные равными 1.