Megosztás a következőn keresztül:


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 a bitek számának megszámlálása előtt nem veti el a kódot. Ennek az az oka, hogy ugyanaz a szám az adattípustól függően eltérő számú is lehet a bináris ábrázolásban.

Például SELECT BIT_COUNT (CAST (-1 AS SMALLINT)) és SELECT BIT_COUNT (CAST (-1 AS INT))16 és 32 ad vissza. Ez a cél, mivel a -1 bináris ábrázolása az adattípustól függően eltérő számú bitet állíthat be 1.

Megjegyzések

A csatolt kiszolgálón belüli bitmanipulációs függvények elosztott lekérdezési funkciói vagy az alkalmi lekérdezések (OPENQUERY) nem támogatottak.

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 Lapok és mértékek architektúra útmutató.

A bitmanipulációs függvények a smallint, smallint, int, bigint, binary(n)és varbinary(n) adattípusokon működnek. Nagyméretű objektum (LOB) adattípusok, Például varchar(max), nvarchar(max), varbinary(max), kép, ntext, szöveg, xml-, valamint a közös nyelvi futtatókörnyezeti (CLR) BLOB-típusok nem támogatottak.

Példák

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

Az alábbi példában a bináris értékben 1 bitek száma lesz kiszámítva.

SELECT BIT_COUNT(0xabcdef) AS Count;

Az eredmény 17. Ennek az az oka, hogy a bináris 0xabcdef1010 1011 1100 1101 1110 1111, és 17 bit van, amelyek értéke 1.

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

Az alábbi példában az egész számban 1 értékre beállított bitek száma lesz kiszámítva.

SELECT BIT_COUNT(17) AS Count;

Az eredmény 2. Ennek az az oka, hogy a bináris 170001 0001, és csak 2 bit van, amelyek értéke 1.