& (AND bit a bit) (Transact-SQL)

Lleva a cabo una operación lógica AND bit a bit entre dos valores enteros.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

expression & expression

Argumentos

expression

Es cualquier expresión válida de un tipo de datos de la categoría de tipos de datos enteros, o del tipo de datos bit, binary o varbinary. expression se trata como un número binario en la operación bit a bit.

[!NOTA] En una operación bit a bit, sólo un argumento expression puede ser del tipo de datos binary o varbinary.

Notas

El operador & bit a bit realiza una operación lógica AND bit a bit entre las dos expresiones, y, para ello, utiliza el bit correspondiente de ambas. Los bits del resultado se establecen en 1 si y sólo si los dos bits (para el bit actual que se resuelve) de las expresiones de entrada tienen el valor 1; de otro modo, el bit del resultado se establece en 0.

Si las expresiones de la izquierda y de la derecha tienen tipos de datos enteros diferentes (por ejemplo, expression a la izquierda es smallint y expression a la derecha es int), el argumento del tipo de datos más pequeño se convierte al tipo de datos mayor. En este caso, expression de tipo smallint se convierte a int.

Tipos de resultado

int si los valores de entrada son int.

smallint si los valores de entrada son smallint.

tinyint si los valores de entrada son tinyint o bit.

Ejemplos

En el ejemplo siguiente se crea una tabla con el tipo de datos int para almacenar los valores, y se insertan dos valores en una misma fila.

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

Esta consulta realiza una operación AND bit a bit entre las columnas a_int_value y b_int_value.

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

El conjunto de resultados es:

----------- 
10          

(1 row(s) affected)

La representación binaria de 170 (a_int_value o A) es 0000 0000 1010 1010. La representación binaria de 75 (b_int_value o B) es 0000 0000 0100 1011. Al realizar la operación AND bit a bit con estos dos valores, se obtiene el resultado binario 0000 0000 0000 1010, que es el 10 decimal.

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

Vea también

Referencia

Expresiones (Transact-SQL)
Operadores (Transact-SQL)

Otros recursos

Bit a bit (operadores del motor de base de datos)

Ayuda e información

Obtener ayuda sobre SQL Server 2005