Partage via


> (AND au niveau du bit) (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL analytics endpoint in Microsoft Fabric Warehouse in Microsoft Fabric

Effectue une opération AND logique au niveau du bit avec deux valeurs entières.

Conventions de la syntaxe Transact-SQL

Syntaxe

expression & expression  

Arguments

expression
Toute expression valide de tout type de données de la catégorie entier, ou de type bit, binary ou varbinary. L’expression est traitée comme un nombre binaire pour l’opération au niveau du bit.

Notes

Dans une opération au niveau du bit, une seule expression peut être de type binary ou varbinary.

Types des résultats

int si les valeurs d’entrée sont int.

smallint si les valeurs d’entrée sont smallint.

tinyint si les valeurs d’entrée sont tinyint ou bit.

Notes

L’opérateur au niveau du bit effectue une opération AND logique au niveau du bit entre les deux expressions, en prenant chaque bit correspondant pour les deux expressions. Dans le résultat, les bits prennent la valeur 1 si et seulement si les deux bits correspondants (pour la position en cours d'évaluation) dans les deux expressions d'entrées ont une valeur de 1 ; si tel n'est pas le cas, le bit résultant est mis à 0.

Si les expressions de droite et de gauche ont des types de données integer (entier) différents (par exemple, l’expression de gauche est de type smallint et l’expression de droite est de type int), l’argument du type de données le plus petit est converti dans le type de données plus grand. Dans cet exemple, l’expression smallint est convertie en un int.

Exemples

L’exemple suivant crée une table avec le type de données int pour le stockage des valeurs et place deux valeurs dans une seule ligne.

CREATE TABLE bitwise (   
  a_int_value INT NOT NULL,  
  b_int_value INT NOT NULL);  
GO  
INSERT bitwise VALUES (170, 75);  
GO  

Cette requête exécute le AND au niveau du bit entre les deux colonnes a_int_value et b_int_value.

SELECT a_int_value & b_int_value  
FROM bitwise;  
GO  

Voici l'ensemble de résultats obtenu :

-----------   
10            
  
(1 row(s) affected)  

La représentation binaire de 170 (a_int_value ou A) est 0000 0000 1010 1010. La représentation binaire de 75 (b_int_value ou B) est 0000 0000 0100 1011. L'exécution de l'opération AND au niveau du bit sur ces deux valeurs produit le résultat binaire 0000 0000 0000 1010, qui est la valeur décimale 10.

(A & B)  
0000 0000 1010 1010  
0000 0000 0100 1011  
-------------------  
0000 0000 0000 1010  

Voir aussi

Expressions (Transact-SQL)
Opérateurs (Transact-SQL)
Opérateurs au niveau du bit (Transact-SQL)
&= (Affectation AND au niveau du bit) (Transact-SQL)
Opérateurs composés (Transact-SQL)