Udostępnij za pośrednictwem


BIT_COUNT (Transact SQL)

Dotyczy: sql Server 2022 (16.x) Azure SQL Databasepunkt końcowy analizy SQLSQL w usłudze Microsoft Fabric

BIT_COUNT przyjmuje jeden parametr i zwraca liczbę bitów ustawioną na 1 w tym parametrze jako typ bigint.

Transact-SQL konwencje składni

Składnia

BIT_COUNT ( expression_value )

Argumenty

expression_value

Każda liczba całkowita lub wyrażenie binarne, które nie jest dużym obiektem (LOB).

Typy zwracane

bigint

BIT_COUNT nie rzutuje, przed zliczeniem liczby bitów. Jest to spowodowane tym, że ta sama liczba może mieć inną liczbę w swojej reprezentacji binarnej w zależności od typu danych.

Na przykład SELECT BIT_COUNT (CAST (-1 AS SMALLINT)) i SELECT BIT_COUNT (CAST (-1 AS INT)) zwracają odpowiednio 16 i 32. Jest to zamierzone, ponieważ binarna reprezentacja -1 może mieć inną liczbę bitów ustawioną na 1 w zależności od typu danych.

Uwagi

Funkcje zapytania rozproszonego dla funkcji manipulowania bitami na serwerze połączonym lub zapytaniach ad hoc (OPENQUERY) nie są obsługiwane.

Duże typy danych obiektów (LOB) w a aparatze bazy danych mogą przechowywać dane, które przekraczają 8000 bajtów. Te typy danych przechowują dane na stronie danych przepełnienie wiersza. LoB obejmuje również typy danych, które przechowują dane w dedykowanych strukturach stron BIZNESOWYCH, które używają tekstu lub wskaźnika obrazu odwołań w wierszu do stron danych LOB. Aby uzyskać więcej informacji na temat magazynu danych, zobacz przewodnik dotyczący architektury Pages i zakresów.

Funkcje manipulowania bitami działają na tinyint, smallint, int, bigint, binary(n)i varbinary(n) typów danych. Duże typy danych obiektów (LOB), takie jak varchar(max), nvarchar(max), varbinary(max), obraz, ntext, tekst, xmli typy obiektów BLOB środowiska uruchomieniowego języka wspólnego (CLR) nie są obsługiwane.

Przykłady

A. Obliczanie BIT_COUNT w wartości binarnej

W poniższym przykładzie obliczana jest liczba bitów ustawionych na 1 w wartości binarnej.

SELECT BIT_COUNT(0xabcdef) AS Count;

Wynik jest 17. Dzieje się tak dlatego, że 0xabcdef w pliku binarnym jest 1010 1011 1100 1101 1110 1111i istnieje 17 bitów z wartością ustawioną na 1.

B. Obliczanie BIT_COUNT w liczbą całkowitą

W poniższym przykładzie obliczana jest liczba bitów ustawionych na 1 w liczbie całkowitej.

SELECT BIT_COUNT(17) AS Count;

Wynik jest 2. Dzieje się tak dlatego, że 17 w pliku binarnym jest 0001 0001i istnieje tylko 2 bity z wartością ustawioną na 1.

  • LEFT_SHIFT (Transact SQL)
  • RIGHT_SHIFT (Transact SQL)
  • SET_BIT (Transact SQL)
  • GET_BIT (Transact SQL)
  • funkcje manipulowania bitami