Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Относится к: 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.