Compartir a través de


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 FabricWarehouse en Microsoft Fabric

BIT_COUNT toma un parámetro y devuelve el número de bits establecido en 1 en ese parámetro como un tipo de 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).

Tipos devueltos

bigint

BIT_COUNT no 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)) devuelven 16 y 32 respectivamente. Esto está pensado, ya que la representación binaria de -1 puede tener un número diferente de bits establecido en 1 en función del tipo de datos.

Observaciones

No se admite la funcionalidad De consulta distribuida para las funciones de manipulación de bits dentro del servidor vinculado o las consultas ad hoc (OPENQUERY).

Los tipos de datos de objetos grandes (LOB) del motor de base de datos pueden almacenar datos que superen los 8000 bytes. Estos tipos de datos almacenan datos en una página de datos de desbordamiento de filas. Un LOB también abarca tipos de datos que almacenan datos en estructuras de páginas de LÍNEA de negocio dedicadas, que usan un texto o un puntero de imagen de referencias en fila a páginas de datos LOB. Para obtener más información sobre el almacenamiento de datos, consulte la guía de arquitectura de páginas y extensiones de .

Las funciones de manipulación de bits funcionan en el tinyint, smallint, int, bigint, binary(n), y varbinary(n) tipos de datos. No se admiten tipos de datos de objetos grandes (LOB), como varchar(max), nvarchar(max), varbinary(max), image, ntext, text, xmly tipos de BLOB de Common Language Runtime (CLR).

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.