Condividi tramite


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 impostato 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 diversa da un Large Object (LOB).

Tipo restituito

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)) restituiranno rispettivamente 16 e 32. Ciò è previsto, poiché la rappresentazione binaria di -1 può avere un numero diverso di bit impostato su 1 a seconda del tipo di dati.

Osservazioni:

Nell'implementazione iniziale, non è supportata la funzionalità Query distribuita per le funzioni di manipolazione dei bit all'interno di un server collegato o di query ad hoc (OPENQUERY).

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.

Vedi anche