BIT_COUNT (Transact SQL)

Aplica-se a:SQL Server 2022 (16.x) Banco de Dados SQL do AzureInstância Gerenciada de SQL do AzurePonto de extremidade de análises SQL no Microsoft FabricWarehouse no Microsoft Fabric

BIT_COUNT usa um parâmetro e retorna o número de bits definido como 1 nesse parâmetro como um tipo bigint.

Convenções de sintaxe de Transact-SQL

Sintaxe

BIT_COUNT ( expression_value )

Argumentos

expression_value

Qualquer expressão binária ou de número inteiro que não seja um LOB (objeto grande).

Tipo de retorno

bigint

BIT_COUNT não é convertido antes de contar o número de bits. Isso ocorre porque o mesmo número pode ter uma quantidade diferente de números um em sua representação binária, dependendo do tipo de dados.

Por exemplo, SELECT BIT_COUNT (CAST (-1 as smallint)) e SELECT BIT_COUNT (CAST (-1 as int)) retornarão 16 e 32, respectivamente. Isso é esperado, pois a representação binária de -1pode ter um número diferente de bits definidos como 1, dependendo do tipo de dados.

Comentários

Na implementação inicial, não haverá suporte para a funcionalidade de Consulta Distribuída para as funções de manipulação de bits no servidor vinculado ou em consultas ad hoc (OPENQUERY).

Exemplos

a. Calcular o BIT_COUNT em um valor binário

No exemplo a seguir, é calculado o número de bits definido como 1 em um valor binário.

SELECT BIT_COUNT ( 0xabcdef ) as Count;

O resultado é 17. Isso ocorre porque 0xabcdef, no sistema binário, é 1010 1011 1100 1101 1110 1111, e há 17 bits com um valor definido como 1.

B. Calcular o BIT_COUNT em um número inteiro

No exemplo a seguir, é calculado o número de bits definidos como 1 em um número inteiro.

SELECT BIT_COUNT ( 17 ) as Count;

O resultado é 2. Isso ocorre porque 17, no sistema binário, é 0001 0001, e há apenas 2 bits com um valor definido como 1.

Confira também