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
.