Freigeben über


BIT_COUNT (Transact SQL)

Gilt für: SQL Server 2022 (16.x) Azure SQL-Datenbank Azure SQL verwaltete Instanz SQL Analytics-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric Warehouse in Microsoft Fabric

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

Transact-SQL-Syntaxkonventionen

Syntax

BIT_COUNT ( expression_value )

Argumente

expression_value

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

Rückgabetypen

bigint

BIT_COUNT wird nicht gegossen, bevor die Anzahl der Bits gezählt wird. 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)) bzw. SELECT BIT_COUNT (CAST (-1 AS INT))16 bzw. 32 zurück. Dies ist vorgesehen, da die binäre Darstellung von -1 je nach Datentyp eine andere Anzahl von Bits auf 1 festgelegt haben kann.

Hinweise

Verteilte Abfragefunktionen für die Bitmanipulationsfunktionen in verknüpften Server- oder Ad-hoc-Abfragen (OPENQUERY) werden nicht unterstützt.

Datentypen für große Objekte (LOB) im Datenbankmodul können Daten speichern, die 8.000 Bytes überschreiten. Diese Datentypen speichern Daten auf einer Zeilenüberlauf Datenseite. Ein LOB umfasst auch Datentypen, die Daten in dedizierten BRANCHENseitenstrukturen speichern, die einen Text oder einen Bildzeiger von In-Zeilen-Verweisen auf LOB-Datenseiten verwenden. Weitere Informationen zur Datenspeicherung finden Sie im Pages and extents architecture guide.

Die Bitmanipulationsfunktionen arbeiten mit tinyint, smallint, int, bigint, binary(n)und varbinary(n) Datentypen. Datentypen für große Objekte (LOB), z. B. varchar(max), nvarchar(max), varbinary(max), Bild, ntext, Text, XML-und CLR-BLOB-Typen (Common Language Runtime) werden 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.