Delen via


BIT_COUNT (Transact SQL)

van toepassing op: SQL Server 2022 (16.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL Analytics-eindpunt in Microsoft FabricWarehouse in Microsoft Fabric

BIT_COUNT neemt één parameter en retourneert het aantal bits dat is ingesteld op 1 in die parameter als een bigint type.

Transact-SQL syntaxisconventies

Syntaxis

BIT_COUNT ( expression_value )

Argumenten

expression_value

Een geheel getal of binaire expressie die geen groot object is (LOB-).

Retourtypen

grote

BIT_COUNT niet cast, voordat het aantal bits wordt geteld. Dit komt doordat hetzelfde getal een ander aantal kan hebben in de binaire weergave, afhankelijk van het gegevenstype.

Zo retourneren SELECT BIT_COUNT (CAST (-1 AS SMALLINT)) en SELECT BIT_COUNT (CAST (-1 AS INT)) respectievelijk 16 en 32. Dit is bedoeld, omdat de binaire weergave van -1 een ander aantal bits kan hebben ingesteld op 1, afhankelijk van het gegevenstype.

Opmerkingen

Gedistribueerde queryfunctionaliteit voor de bitbewerkingsfuncties binnen gekoppelde server of ad-hocquery's (OPENQUERY) worden niet ondersteund.

Grote objectgegevenstypen (LOB) in de database-engine kunnen gegevens opslaan die groter zijn dan 8000 bytes. Met deze gegevenstypen worden gegevens opgeslagen op een rij-overlooppagina gegevenspagina. Een LOB omvat ook gegevenstypen waarin gegevens worden opgeslagen in toegewezen LOB-paginastructuren, die een tekst- of afbeeldingsaanwijzer van in-rijverwijzingen naar LOB-gegevenspagina's gebruiken. Zie de architectuurhandleiding voor Pagina's en gebieden voor meer informatie over gegevensopslag.

De bitmanipulatiefuncties werken op de tinyint, smallint, int, bigint, binary(n)en varbinary(n) gegevenstypen. Grote objectgegevenstypen (LOB), zoals varchar(max), nvarchar(max), varbinary(max), afbeelding, ntext, tekst, XML-en CLR-blobtypen (Common Language Runtime) worden niet ondersteund.

Voorbeelden

Een. De BIT_COUNT in een binaire waarde berekenen

In het volgende voorbeeld wordt het aantal bits dat is ingesteld op 1 in een binaire waarde berekend.

SELECT BIT_COUNT(0xabcdef) AS Count;

Het resultaat is 17. Dit komt doordat 0xabcdef in binair bestand 1010 1011 1100 1101 1110 1111is en er 17 bits zijn met een waarde die is ingesteld op 1.

B. De BIT_COUNT in een geheel getal berekenen

In het volgende voorbeeld wordt het aantal bits dat is ingesteld op 1 in een geheel getal berekend.

SELECT BIT_COUNT(17) AS Count;

Het resultaat is 2. Dit komt doordat 17 in binair bestand is 0001 0001en er slechts 2 bits zijn met een waarde die is ingesteld op 1.