Compartilhar via


BIT_COUNT (Transact SQL)

Aplica-se a: SQL Server 2022 (16.x) Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Ponto de extremidade de análise de SQL no Microsoft Fabric Warehouse 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