BIT_COUNT (Transact-SQL)

Platí na: SQL Server 2022 (16.x) Azure SQL Database AzureSQL Managed InstanceSQL analytics endpoint in Microsoft FabricWarehouse in Microsoft FabricSQL database in Microsoft Fabric

BIT_COUNT přebírá jeden parametr a vrací počet bitů nastavených na 1 v daném parametru jako typ bigint.

Transact-SQL konvence syntaxe

Syntax

BIT_COUNT ( expression_value )

Argumenty

expression_value

Jakékoli celé číslo nebo binární výraz, který není velkým objektem (LOB).

Návratové typy

bigint

BIT_COUNT Neodesílá svůj vstup před počítáním bitů. Protože binární reprezentace stejného čísla závisí na jeho datovém typu, výsledek závisí na typu vstupu.

Například následující dotazy vracejí 16 a 32, resp.

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

BIT_COUNT vrací NULL, když expression_value je typován NULL podporovaným datovým typem. Musíte seslat netypovaný NULL literál na podporovaný typ, než ho předáte do druhu:

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

Poznámky

Distribuovaná funkce dotazů pro funkce úpravy bitů v rámci propojeného serveru nebo ad hoc dotazů (OPENQUERY) nejsou podporovány.

Velké datové typy objektu (LOB) v databázovém stroji mohou ukládat data, která překračují 8 000 bajtů. Tyto datové typy ukládají data na přetečení řádku datové stránce. Obchodní objekt také zahrnuje datové typy, které ukládají data ve vyhrazených strukturách obchodních stránek, které používají text nebo ukazatel obrázku odkazů na řádkové odkazy na datové stránky LOB. Další informace o úložišti dat najdete v průvodci architekturou stránky a rozsahu.

Funkce manipulace s bity pracují s tinyint, smallint, int, bigint, binary(n)a varbinary(n) datových typů. Tyto funkce nepodporují velké objektové (LOB) datové typy, jako jsou varchar(max),nvarchar(max),varbinary(max),image, ntext, text, xml a běžné běžné (CLR) typy BLOB v běžném jazyce.

Příklady

A. Výpočet BIT_COUNT v binární hodnotě

Následující příklad vypočítává počet bitů nastavených na v 1 binární hodnotě.

SELECT BIT_COUNT(0xABCDEF) AS Count;

Výsledek je 17. Tento výsledek nastává, protože 0xABCDEF v binárním je , 1010 1011 1100 1101 1110 1111který má 17 bitů nastavených na .1

B. Výpočet BIT_COUNT v celočíselném čísle

Následující příklad vypočítává počet bitů nastavených na v 1 celém čísle.

SELECT BIT_COUNT(17) AS Count;

Výsledek je 2. Tento výsledek nastává, protože 17 v binárním je , 0001 0001který má pouze dva bity nastavené na .1