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.