Sdílet prostřednictvím


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 se nepřetypuje, než spočítáte počet bitů. Důvodem je to, že stejné číslo může mít v binární reprezentaci jiný počet v závislosti na datovém typu.

Například SELECT BIT_COUNT (CAST (-1 AS SMALLINT)) a SELECT BIT_COUNT (CAST (-1 AS INT)) vrátit 16 a 32. To je určeno, protože binární reprezentace -1 může mít jiný počet bitů nastavený na 1 v závislosti na datovém typu.

Poznámky

Funkce distribuovaného dotazu pro funkce pro manipulaci s bity v rámci odkazovaného serveru nebo ad hoc dotazů (OPENQUERY) se nepodporují.

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 rozsahy.

Funkce manipulace s bity pracují s tinyint, smallint, int, bigint, binary(n)a varbinary(n) datových typů. Datové typy velkých objektů (LOB), například varchar(max), nvarchar(max), varbinary(max), image, ntext, textové, xmla typy objektů BLOB clr (Common Language Runtime).

Příklady

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

V následujícím příkladu se vypočítá počet bitů nastavených na 1 v binární hodnotě.

SELECT BIT_COUNT(0xabcdef) AS Count;

Výsledek je 17. Je to proto, že 0xabcdef v binárním souboru je 1010 1011 1100 1101 1110 1111a existuje 17 bitů s hodnotou nastavenou na 1.

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

V následujícím příkladu se vypočítá počet bitů nastavených na 1 v celočíselném čísle.

SELECT BIT_COUNT(17) AS Count;

Výsledek je 2. Je to proto, že 17 v binárním souboru je 0001 0001a existují pouze 2 bity s hodnotou nastavenou na 1.

  • LEFT_SHIFT (Transact SQL)
  • RIGHT_SHIFT (Transact SQL)
  • SET_BIT (Transact SQL)
  • GET_BIT (Transact SQL)
  • funkce manipulace s bity