Operadores bit a bit (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de análisis SQL en Microsoft FabricAlmacenamiento en Microsoft Fabric

Los operadores bit a bit realizan manipulaciones de bits entre dos expresiones de cualquiera de los tipos de datos de la categoría del tipo de datos entero.

Los operadores bit a bit convierten dos valores enteros en bits binarios y llevan a cabo la operación AND, OR o NOT correspondiente en cada bit, lo cual genera un resultado. Luego, convierten el resultado en un entero.

Por ejemplo, el entero 170 se convierte en el binario 1010 1010.

El entero 75 lo hace en el binario 0100 1011.

Operador Cálculo bit a bit
AND

Si ambos bits de cualquier posición son 1, el resultado es 1.
1010 1010 = 170
0100 1011 = 75
-----------------
0000 1010 = 10
OR

Si alguno de los bits en cualquier posición es 1, el resultado es 1.
1010 1010 = 170
0100 1011 = 75
-----------------
1110 1011 = 235
NOT

Invierte el valor de bit en cada posición de bits.
1010 1010 = 170
-----------------
0101 0101 = 85

En los artículos siguientes se proporciona más información sobre los operadores bit a bit disponibles en el motor de base de datos:

Los operadores bit a bit siguientes se introdujeron en SQL Server 2022 (16.x):

Los operandos de los operadores bit a bit pueden ser de cualquiera de los tipos de datos de las categorías de tipos de datos entero o de cadena binaria (excepto el tipo de datos image), con la excepción de que ambos operandos no pueden ser de uno de los tipos de datos de la categoría de tipos de datos de cadena binaria. La siguiente tabla muestra los tipos de datos de operando admitidos.

Operando izquierdo Operando derecho
binary int, smallint o tinyint
bit int, smallint, tinyint o bit
bigint bigint, int, smallint, tinyint, binary o varbinary
int int, smallint, tinyint, binary o varbinary
smallint int, smallint, tinyint, binary o varbinary
tinyint int, smallint, tinyint, binary o varbinary
varbinary int, smallint o tinyint

Consulte también