Opérateurs au niveau du bit (Transact-SQL)

S’applique à : point de terminaison d’analytique SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL Analytics dans Microsoft Fabric Warehouse dans Microsoft Fabric

Les opérateurs au niveau du bit exécutent des manipulations de bits entre deux expressions de tout type de données de la catégorie entier.

Les opérateurs au niveau du bit permettent de convertir deux valeurs entières en bits binaires, d’effectuer l’opération AND, OR ou NOT sur chaque bit et de produire un résultat. Ils convertissent ensuite le résultat en entier.

Par exemple, l’entier 170 se convertit en binaire 1010 1010.

L’entier 75 se convertit en binaire 0100 1011.

Opérateur Mathématiques au niveau du bit
AND

Si les bits, quelle que soit leur position, sont tous les deux 1, le résultat est 1.
1010 1010 = 170
0100 1011 = 75
-----------------
0000 1010 = 10
OR

Si l’un ou l’autre des bits, quelle que soit sa position, est 1, le résultat est 1.
1010 1010 = 170
0100 1011 = 75
-----------------
1110 1011 = 235
NOT

Inverse la valeur de bit à chaque position de bit.
1010 1010 = 170
-----------------
0101 0101 = 85

Les articles suivants fournissent plus d’informations sur les opérateurs au niveau du bit disponibles dans le moteur de base de données :

Les opérateurs au niveau du bit suivants ont été introduits dans SQL Server 2022 (16.x) :

Les opérandes des opérateurs au niveau du bit peuvent être de tout type de données des catégories chaîne binaire ou entier (à l’exception du type de données image), mais les deux opérandes ne peuvent être de n’importe quel type de données de la catégorie chaîne binaire. Ce tableau indique les types de données d'opérandes pris en charge.

Opérande de gauche Opérande de droite
binary int, smallint ou tinyint
bit int, smallint, tinyint ou bit
bigint bigint, int, smallint, tinyint, binary ou varbinary
int int, smallint, tinyint, binary ou varbinary
smallint int, smallint, tinyint, binary ou varbinary
tinyint int, smallint, tinyint, binary ou varbinary
varbinary int, smallint ou tinyint

Voir aussi