Partage via


BIT_COUNT (Transact SQL)

S’applique à : point de terminaison d’analyse SQL Server 2022 (16.x) Azure SQL Database Azure SQL Managed Instance SQL dans Microsoft Fabric Warehouse

BIT_COUNT prend un paramètre et retourne le nombre de bits définis sur 1 dans ce paramètre en tant que type bigint.

Conventions de la syntaxe Transact-SQL

Syntaxe

BIT_COUNT ( expression_value )

Arguments

expression_value

Toute expression entière ou binaire qui n’est pas un objet volumineux (LOB).

Types de retour

bigint

BIT_COUNT n’effectue pas de cast, avant de compter le nombre de bits. Cela est dû au fait que le même nombre peut avoir un nombre différent dans sa représentation binaire en fonction du type de données.

Par exemple, SELECT BIT_COUNT (CAST (-1 AS SMALLINT)) et SELECT BIT_COUNT (CAST (-1 AS INT)) retourner 16 et 32 respectivement. Cela est prévu, car la représentation binaire de -1 peut avoir un nombre différent de bits défini sur 1 en fonction du type de données.

Remarques

Les fonctionnalités de requête distribuée pour les fonctions de manipulation de bits au sein d’un serveur lié ou de requêtes ad hoc (OPENQUERY) ne sont pas prises en charge.

Les types de données objet volumineux (LOB) dans le moteur de base de données peuvent stocker des données qui dépassent 8 000 octets. Ces types de données stockent des données sur une page de données de dépassement de ligne. Un métier englobe également les types de données qui stockent des données sur des structures de page métier dédiées, qui utilisent un texte ou un pointeur d’image de références en ligne aux pages de données métier. Pour plus d’informations sur le stockage de données, consultez le guide d’architecture Pages et étendues.

Les fonctions de manipulation de bits fonctionnent sur le tinyint, smallint , int, bigint, binary(n), et varbinary(n) types de données. Les types de données LOB (Large Object), tels que varchar(max), nvarchar(max), varbinary(max), image, ntext, text, xmlet les types BLOB CLR (Common Language Runtime) ne sont pas pris en charge.

Exemples

R. Calculer la fonction BIT_COUNT dans une valeur binaire

Dans l’exemple suivant, le nombre de bits défini sur 1 dans une valeur binaire est calculé.

SELECT BIT_COUNT(0xabcdef) AS Count;

Le résultat est 17. Cela est dû au fait que 0xabcdef dans un binaire est 1010 1011 1100 1101 1110 1111 et il y a 17 bits avec une valeur définie sur 1.

B. Calculer la fonction BIT_COUNT dans un entier

Dans l’exemple suivant, le nombre de bits défini sur 1 dans un entier est calculé.

SELECT BIT_COUNT(17) AS Count;

Le résultat est 2. Cela est dû au fait que 17 dans un binaire est 0001 0001 et il y a 2 bits avec une valeur définie sur 1.