& (Opération AND au niveau du bit) (Transact-SQL)

Exécute une opération logique AND au niveau du bit entre deux valeurs entières.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

expression & expression

Arguments

expression

Toute expression valide de n'importe quel type de données de la catégorie de type de données entier ou bit ou les types de données binary ou varbinary. expression est un entier traité en nombre binaire pour l'opération au niveau du bit.

ms174965.note(fr-fr,SQL.90).gifRemarque :
Dans une opération au niveau du bit, seule une expression peut être du type de données binary ou varbinary.

Notes

L'opérateur au niveau du bit & exécute un AND logique au niveau du bit entre les deux expressions, en évaluant chaque bit correspondant dans chacune des 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 d'entier différents (par exemple, expression à gauche est de type smallint et expression à droite est de type int), l'argument du type de données le plus petit est converti vers le plus grand. Dans cet exemple, smallintexpression est convertie en int.

Types de résultats

int si les valeurs d'entrées sont int.

smallint si les valeurs d'entrées sont smallint.

tinyint si les valeurs d'entrées sont tinyint ou bit.

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

USE tempdb;
GO
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES 
      WHERE TABLE_NAME = 'bitwise')
   DROP TABLE bitwise;
GO
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.

USE tempdb;
GO
SELECT a_int_value & b_int_value
FROM bitwise;
GO

Voici le jeu 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

Référence

Expressions (Transact-SQL)
Opérateurs (Transact-SQL)

Autres ressources

Opérateurs au niveau du bit (moteur de base de données)

Aide et Informations

Assistance sur SQL Server 2005