Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: SQL Server 2022 (16.x)
Azure SQL Database
Azure SQL Managed Instance
SQL analytics endpoint in Microsoft Fabric
Warehouse in Microsoft Fabric SQL
database in Microsoft Fabric
BIT_COUNT tar en parameter och returnerar antalet bitar som anges till 1 i parametern som en bigint- typ.
Transact-SQL syntaxkonventioner
Syntax
BIT_COUNT ( expression_value )
Argument
expression_value
Alla heltal eller binära uttryck som inte är ett stort objekt (LOB).
Returtyper
bigint
BIT_COUNT kastar inte sin inmatning innan den räknar bitarna. Eftersom den binära representationen av samma tal beror på dess datatyp, beror resultatet på indatatypen.
Till exempel returnerar 16 följande frågor och 32, respektive:
SELECT BIT_COUNT(CAST (-1 AS SMALLINT)); -- Returns 16
SELECT BIT_COUNT(CAST (-1 AS INT)); -- Returns 32
BIT_COUNT returnerar NULL när expression_value är en typ NULL av en stödd datatyp. Du måste kasta en otypad NULL literal till en stödd typ innan du skickar in den:
SELECT BIT_COUNT(CAST (NULL AS INT)); -- Returns NULL
Anmärkningar
Distribuerad frågefunktionalitet för bitmanipulationsfunktioner inom länkade servrar eller ad hoc-frågor (OPENQUERY) stöds inte.
Stora objektdatatyper (LOB) i databasmotorn kan lagra data som överstiger 8 000 byte. Dessa datatyper lagrar data på en rad-overflow datasida. En LOB omfattar även datatyper som lagrar data på dedikerade LOB-sidstrukturer, som använder en text eller en bildpekare med referenser på rad till LOB-datasidor. Mer information om datalagring finns i arkitekturguiden för sida och omfattning.
Bitmanipuleringsfunktionerna fungerar på tinyint, smallint, int, bigint, binary(n), och varbinary(n) datatyper. Dessa funktioner stöder inte stora objektdatatyper (LOB), såsom varchar(max),nvarchar(max),varbinary(max), bild, ntext, text, xml och common language runtime (CLR) BLOB-typer.
Exempel
A. Beräkna BIT_COUNT i ett binärt värde
Följande exempel beräknar antalet bitar satta till 1 i ett binärt värde.
SELECT BIT_COUNT(0xABCDEF) AS Count;
Resultatet är 17. Detta resultat uppstår eftersom 0xABCDEF i binär är , 1010 1011 1100 1101 1110 1111som har 17 bitar satta till 1.
B. Beräkna BIT_COUNT i ett heltal
Följande exempel beräknar antalet bitar satta till 1 i ett heltal.
SELECT BIT_COUNT(17) AS Count;
Resultatet är 2. Detta resultat uppstår eftersom 17 i binär är 0001 0001, som endast har två bitar satta till 1.