Partilhar via


BIT_COUNT (Transact SQL)

Aplica-se a: SQL Server 2022 (16.x) Banco de Dados SQL do AzureInstância Gerenciada SQL do Azureponto de extremidade de análise 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 bigint tipo.

Transact-SQL convenções de sintaxe

Sintaxe

BIT_COUNT ( expression_value )

Argumentos

expression_value

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

Tipos de devolução

bigint

BIT_COUNT não lança, antes de contar o número de bits. Isso ocorre porque o mesmo número pode ter um número diferente de números 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)) retorno 16 e 32 respectivamente. Isso é pretendido, pois a representação binária de -1 pode ter um número diferente de bits definido para 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).

Os tipos de dados de objeto grande (LOB) no Mecanismo de Banco de Dados podem armazenar dados que excedam 8.000 bytes. Esses tipos de dados armazenam dados em uma página de dados de de estouro de linha. Um LOB também engloba tipos de dados que armazenam dados em estruturas de página LOB dedicadas, que usam um ponteiro de texto ou imagem de referências em linha a páginas de dados LOB. Para obter mais informações sobre armazenamento de dados, consulte o guia de arquitetura Pages and extents.

As funções de manipulação de bits operam no tinyint , smallint, int, bigint, binary(n)e varbinary(n) tipos de dados. Não há suporte para tipos de dados de objeto grande (LOB), como varchar(max), nvarchar(max), varbinary(max), image, ntext, text, xmle common language runtime (CLR) BLOB.

Exemplos

Um. Calcular o BIT_COUNT em um valor binário

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

SELECT BIT_COUNT(0xabcdef) AS Count;

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

B. Calcular o BIT_COUNT em um inteiro

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

SELECT BIT_COUNT(17) AS Count;

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