BIT_COUNT (Transact SQL)

S’applique à :SQL Server 2022 (16.x) Azure SQL DatabaseAzure SQL Managed InstancePoint de terminaison analytique SQL dans Microsoft FabricEntrepôt dans Microsoft Fabric

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 Large Object (LOB).

Type de retour

bigint

BIT_COUNT n’est pas 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)) retourne respectivement 16 et 32. 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

Dans l’implémentation initiale, la fonctionnalité Requête distribuée pour les fonctions de manipulation de bits au sein de requêtes de serveur lié ou ad hoc (OPENQUERY) ne sera pas prise 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.

Voir aussi