BIT_COUNT (Transact SQL)

Se aplica a: SQL Server 2022 (16.x) Azure SQL DatabaseAzure SQL Managed InstancePunto de conexión de análisis SQL en Microsoft FabricAlmacenamiento 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.

Vea también