BIT_COUNT (Transact SQL)

Gilt für:SQL Server 2022 (16.x) Azure SQL-DatenbankAzure SQL Managed InstanceSQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric

BIT_COUNT akzeptiert einen Parameter und gibt die Anzahl von Bits, die in diesem Parameter auf 1 festgelegt sind, als bigint-Typ zurück.

Transact-SQL-Syntaxkonventionen

Syntax

BIT_COUNT ( expression_value )

Argumente

expression_value

Beliebiger ganzzahliger oder binärer Ausdruck, der kein großes Objekt (LOB) ist.

Rückgabetyp

bigint

BIT_COUNT nimmt vor dem Zählen der Anzahl von Bits keine Umwandlung vor. Dies liegt daran, dass dieselbe Zahl je nach Datentyp eine andere Anzahl von Einsen in ihrer Binärdarstellung aufweisen kann.

Beispielsweise geben SELECT BIT_COUNT (CAST (-1 as smallint)) und SELECT BIT_COUNT (CAST (-1 as int)) 16 bzw. 32 zurück. Dies ist so beabsichtigt, da die Binärdarstellung von -1 eine andere Anzahl von auf 1 festgelegten Bits besitzen kann, je nach Datentyp.

Hinweise

In der anfänglichen Implementierung werden die Funktionen der „Verteilten Abfrage“ für die Funktionen zur Bitmanipulation innerhalb des verknüpften Servers oder in Ad-hoc-Abfragen (OPENQUERY) nicht unterstützt.

Beispiele

A. Berechnen von BIT_COUNT in einem Binärwert

Im folgenden Beispiel wird die Anzahl der in einem Binärwert auf 1 festgelegten Bits berechnet.

SELECT BIT_COUNT ( 0xabcdef ) as Count;

Das Ergebnis ist 17. Dies liegt daran, dass 0xabcdef in Binärdarstellung 1010 1011 1100 1101 1110 1111 ist, und 17 Bits mit einem auf 1 festgelegten Wert vorhanden sind.

B. Berechnen von BIT_COUNT in einer ganzen Zahl

Im folgenden Beispiel wird die Anzahl der in einer ganzen Zahl auf 1 festgelegten Bits berechnet.

SELECT BIT_COUNT ( 17 ) as Count;

Das Ergebnis ist 2. Dies liegt daran, dass 17 in Binärdarstellung 0001 0001 ist, und nur 2 Bits mit einem auf 1 festgelegten Wert vorhanden sind.

Siehe auch