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