Compartir vía


| (OR bit a bit) (Transact-SQL)

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Punto de conexión de análisis SQL en Microsoft Fabric Almacenamiento en Microsoft Fabric

Realiza una operación OR bit a bit lógica entre dos valores de tipo entero especificados tal y como aparecen traducidos en expresiones binarias en instrucciones Transact-SQL.

Convenciones de sintaxis de Transact-SQL

Sintaxis

expression | expression  

Argumentos

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

Nota

Solo una expression puede ser del tipo de datos binary o varbinary en una operación bit a bit.

Tipos de resultado

Devuelve un int si los valores de entrada son int; un smallint si los valores de entrada son smallint, o un tinyint si los valores de entrada son tinyint.

Comentarios

El operador | de bit a bit realiza una operación OR lógica de bit a bit entre las dos expresiones y, para ello, toma cada bit correspondiente de ambas expresiones. Los bits del resultado se establecen en 1 si alguno o ambos bits (para el bit actual que se resuelve) de las expresiones de entrada tienen el valor 1; si ninguno de los bits de la expresión de entrada es 1, el bit del resultado se establece en 0.

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

Ejemplos

En el ejemplo siguiente se crea una tabla con tipos de datos int para mostrar los valores originales y se pone la tabla en una fila.

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

La siguiente consulta realiza la operación OR bit a bit en las columnas a_int_value y b_int_value.

SELECT a_int_value | b_int_value  
FROM bitwise;  
GO  

Este es el conjunto de resultados.

-----------   
235           
  
(1 row(s) affected)  

La representación binaria de 170 (a_int_value o A, abajo) es 0000 0000 1010 1010. La representación binaria de 75 (b_int_value o B, abajo) es 0000 0000 0100 1011. Al realizar la operación OR bit a bit en estos dos valores, se produce el resultado binario 0000 0000 1110 1011, que es 235 en decimal.

(A | B)  
0000 0000 1010 1010  
0000 0000 0100 1011  
-------------------  
0000 0000 1110 1011  

Vea también

Operadores (Transact-SQL)
Operadores bit a bit (Transact-SQL)
| = (Asignación de OR bit a bit) (Transact-SQL)
Operadores compuestos (Transact-SQL)