BIT_COUNT (Transact-SQL)

Vonatkozik a következőkre: SQL Server 2022 (16.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL analytics endpoint in Microsoft FabricWarehouse in Microsoft Fabric SQLdatabase in Microsoft Fabric

BIT_COUNT egy paramétert vesz fel, és az adott paraméterben 1-esre beállított bitek számát adja vissza bigint típusként.

Transact-SQL szintaxis konvenciói

Szintaxis

BIT_COUNT ( expression_value )

Érvek

expression_value

Minden olyan egész szám vagy bináris kifejezés, amely nem nagy objektum (LOB).

Visszatérési típusok

bigint

BIT_COUNT nem adja a bemenetét a bitek számolása előtt. Mivel ugyanannak a számnak a bináris ábrázolása az adattípustól függ, az eredmény a bemeneti típustól függ.

Például a következő lekérdezések és , következőleg visszaadódnak 1632:

SELECT BIT_COUNT(CAST (-1 AS SMALLINT)); -- Returns 16
SELECT BIT_COUNT(CAST (-1 AS INT)); -- Returns 32

BIT_COUNT akkor jelenik meg, NULLamikor expression_value támogatott adattípus típusa NULL . A támogatott típusra kell egy típus nélküli NULL literal-t kibocsátani, mielőtt átadnád azt:

SELECT BIT_COUNT(CAST (NULL AS INT)); -- Returns NULL

Megjegyzések

A bitmanipulációs funkciók elosztott lekérdezési funkciói a linked szerveren vagy ad hoc lekérdezésekben (OPENQUERY) nem támogatott.

Az adatbázismotor nagyméretű objektum-adattípusai 8000 bájtnál nagyobb adatokat tárolhatnak. Ezek az adattípusok egy sorátfolyási adatoldalon tárolják az adatokat. A LOB olyan adattípusokat is magában foglal, amelyek dedikált LOB-lapstruktúrákban tárolják az adatokat, amelyek a LOB adatoldalakra mutató szöveg- vagy képmutatót használnak. Az adattárolással kapcsolatos további információkért tekintse meg a Lap és a Mérték architektúra útmutatót.

A bitmanipulációs függvények a smallint, smallint, int, bigint, binary(n)és varbinary(n) adattípusokon működnek. Ezek a függvények nem támogatják a nagy objektum (LOB) adattípusokat, mint például varchar(max), nvarchar(max),varbinary(max),image, ntext, text, xml és common language runtime (CLR) BLOB típusok.

Példák

Egy. A BIT_COUNT kiszámítása bináris értékben

A következő példa kiszámítja, hány bitet állítanak 1 be bináris értékben.

SELECT BIT_COUNT(0xABCDEF) AS Count;

Az eredmény 17. Ez az eredmény azért fordul elő, 0xABCDEF mert a binárisban 1010 1011 1100 1101 1110 1111, amelynek 17 bitje van beállítva.1

B. A BIT_COUNT kiszámítása egész számban

A következő példa kiszámítja a bitek számát egy egész számban.1

SELECT BIT_COUNT(17) AS Count;

Az eredmény 2. Ez az eredmény azért következik be, 17 mert bináris esetben 0001 0001, amelynek csak két bitje van beállítva.1