Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Относится к: SQL Server 2022 (16.x)
Azure SQL Database
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 не заклинает, не считая количество битов. Это связано с тем, что одно и то же число может иметь разное количество единиц в двоичном представлении в зависимости от типа данных.
Например SELECT BIT_COUNT (CAST (-1 AS SMALLINT)) , и SELECT BIT_COUNT (CAST (-1 AS INT)) возвращают 16 и 32 соответственно. Это задумано, поскольку бинарное представление может -1 иметь разное количество битов 1 в зависимости от типа данных.
Замечания
Функциональность распределённых запросов для функций управления битами внутри связанного сервера или ad hoc запросов (OPENQUERY) не поддерживается.
Типы данных больших объектов (LOB) в ядре СУБД могут хранить данные, превышающие 8000 байт. Эти типы данных хранят данные на странице данных с переполнением строк . LOB также включает типы данных, которые хранят данные на выделенных структурах страниц LOB, которые используют текстовый или изображенный указатель с ссылками в строке на страницы данных LOB. Для получения дополнительной информации о хранении данных смотрите руководство по архитектуре Pages and extents.
Функции управления битами работают с типами данных 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, и есть только 2 бита со значением равным 1.