BIT_COUNT (Transact SQL)
Si applica a: SQL Server 2022 (16.x)
database SQL di Azure
Istanza gestita di SQL di Azure
endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric
BIT_COUNT
accetta un parametro e restituisce il numero di bit impostati su 1 in tale parametro come tipo bigint.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
BIT_COUNT ( expression_value )
Argomenti
expression_value
Qualsiasi espressione integer o binaria che non è un oggetto di grandi dimensioni (LOB).
Tipi restituiti
bigint
BIT_COUNT
non esegue il cast, prima di contare il numero di bit. Questo perché lo stesso numero può avere un numero diverso di 1 nella relativa rappresentazione binaria, a seconda del tipo di dati.
Ad esempio, SELECT BIT_COUNT (CAST (-1 AS SMALLINT))
e SELECT BIT_COUNT (CAST (-1 AS INT))
restituiscono rispettivamente 16
e 32
. Ciò è previsto, poiché la rappresentazione binaria di -1
può avere un numero di bit diverso impostato su 1
a seconda del tipo di dati.
Osservazioni:
Le funzionalità di query distribuite per le funzioni di manipolazione dei bit all'interno del server collegato o delle query ad hoc (OPENQUERY
) non sono supportate.
I tipi di dati LOB (Large Object) nel motore di database possono archiviare dati che superano 8.000 byte. Questi tipi di dati archiviano i dati in una pagina di overflow di righe dati. Un line-of-business include anche i tipi di dati che archivia i dati in strutture di pagine LINEB dedicate, che usano un puntatore di testo o immagine di riferimenti in riga alle pagine di dati LINEB. Per altre informazioni sull'archiviazione dei dati, vedere la guida all'architettura delle pagine e degli extent .
Le funzioni di manipolazione dei bit operano sui tinyint, smallint, int, bigint, binary(n)e varbinary(n). I tipi di dati LOB (Large Object), ad esempio varchar(max), nvarchar(max), varbinary(max), image, ntext, text, xmle tipi BLOB CLR (Common Language Runtime).
Esempi
R. Calcolare BIT_COUNT in un valore binario
Nell'esempio seguente viene calcolato il numero di bit impostato su 1
in un valore binario.
SELECT BIT_COUNT(0xabcdef) AS Count;
Il risultato è 17
. Ciò è dovuto al fatto che 0xabcdef
nel file binario è 1010 1011 1100 1101 1110 1111
e sono presenti 17 bit con un valore impostato su 1
.
B. Calcolare BIT_COUNT in un intero
Nell'esempio seguente viene calcolato il numero di bit impostato su 1
in un intero.
SELECT BIT_COUNT(17) AS Count;
Il risultato è 2
. Ciò è dovuto al fatto che 17
nel file binario è 0001 0001
e sono presenti solo 2 bit con un valore impostato su 1
.