BIT_COUNT (Transact SQL)
Aplica-se a: SQL Server 2022 (16.x)
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
ponto de extremidade de análise 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 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 1111
e 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 0001
e há apenas 2 bits com um valor definido como 1
.