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 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 inteira ou binária que não seja um objeto grande (LOB).

Tipos 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)) retornam 16 e 32 respectivamente. Isso se destina, pois a representação binária de -1 pode ter um número diferente de bits definido como 1 dependendo do tipo de dados.

Comentários

Não há suporte para a funcionalidade de consulta distribuída para as funções de manipulação de bits no servidor vinculado ou consultas ad hoc (OPENQUERY).

Tipos de dados lob (objeto grande) no Mecanismo de Banco de Dados podem armazenar dados que excedem 8.000 bytes. Esses tipos de dados armazenam dados em uma página de dados de estouro de linha. Um LOB também abrange tipos de dados que armazenam dados em estruturas de página lob dedicadas, que usam um texto ou um ponteiro de imagem de referências em linha para páginas de dados LOB. Para obter mais informações sobre o armazenamento de dados, consulte o guia de arquitetura Páginas e extensões.

As funções de manipulação de bit operam no minúsculo, smallint, int, bigint, binary(n)e varbinary(n). Tipos de dados lob (objeto grande), Não há suporte para varchar(max), nvarchar(max), varbinary(max), image, ntext, text, xmle tipos CLR (common language runtime).

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.