BIT_COUNT (Transact SQL)
Se aplica a: Sql Server 2022 (16.x) Azure SQL Database Azure SQL Instancia administrada punto de conexión de SQL Analytics en Microsoft Fabric Warehouse en Microsoft Fabric
BIT_COUNT toma un parámetro y devuelve el número de bits establecidos en 1 en ese parámetro como un tipo bigint.
Convenciones de sintaxis de Transact-SQL
Sintaxis
BIT_COUNT ( expression_value )
Argumentos
expression_value
Cualquier expresión entera o binaria que no sea un objeto grande (LOB).
Tipo de valor devuelto
bigint
BIT_COUNT no se convierte antes de contar el número de bits. Esto se debe a que el mismo número puede tener un número diferente de uno en su representación binaria en función del tipo de datos.
Por ejemplo, SELECT BIT_COUNT (CAST (-1 as smallint))
y SELECT BIT_COUNT (CAST (-1 as int))
devolverán 16 y 32, respectivamente. Esto está pensado para que la representación binaria de -1
pueda tener un número diferente de bits establecido en 1 en función del tipo de datos.
Observaciones
En la implementación inicial, no se admitirá la funcionalidad de consulta distribuida para las funciones de manipulación de bits dentro del servidor vinculado o las consultas ad hoc (OPENQUERY).
Ejemplos
A. Calcular BIT_COUNT en un valor binario
En el ejemplo siguiente, se calcula el número de bits establecidos en 1
en un valor binario.
SELECT BIT_COUNT ( 0xabcdef ) as Count;
El resultado es 17
. Esto se debe a que 0xabcdef
en binario es 1010 1011 1100 1101 1110 1111
, y hay 17 bits con un valor establecido en 1
.
B. Calcular BIT_COUNT en un entero
En el ejemplo siguiente, se calcula el número de bits establecido en 1
en un entero.
SELECT BIT_COUNT ( 17 ) as Count;
El resultado es 2
. Esto se debe a que 17
en binario es 0001 0001
, y solo hay 2 bits con un valor establecido en 1
.