Partilhar via


| (Bitwise OU) (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade de Análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de Dados SQL no Microsoft Fabric

Executa uma operação OR lógica bit a bit entre dois valores inteiros especificados, como traduzidos para expressões binárias dentro das declarações Transact-SQL.

Transact-SQL convenções de sintaxe

Syntax

expression | expression  

Arguments

expression
É qualquer expressão válida da categoria de tipo de dados inteiro ou dos tipos de dados bit, binário ou varbinary . expression é tratada como um número binário para a operação bitwise.

Note

Apenas uma expressão pode ser do tipo de dados binário ou varbinary em uma operação bitwise.

Tipos de Resultados

Retorna um int se os valores de entrada forem int, um smallint se os valores de entrada forem smallint ou um tinyint se os valores de entrada forem tinyint.

Remarks

O bitwise | executa um bit a bit lógico OU entre as duas expressões, tomando cada bit correspondente para ambas as expressões. Os bits no resultado são definidos como 1 se um ou ambos os bits (para o bit atual que está sendo resolvido) nas expressões de entrada tiverem um valor de 1; Se nenhum bit nas expressões de entrada for 1, o bit no resultado será definido como 0.

Se as expressões esquerda e direita tiverem tipos de dados inteiros diferentes (por exemplo, a expressão esquerda é smallint e a expressão direita é int), o argumento do tipo de dados menor é convertido para o tipo de dados maior. Neste exemplo, a expressãosmallint é convertida em int.

Examples

O exemplo a seguir cria uma tabela com tipos de dados int para mostrar os valores originais e coloca a tabela em uma linha.

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

A consulta a seguir executa o bit a bit OR nas colunas a_int_value e b_int_value .

SELECT a_int_value | b_int_value  
FROM bitwise;  
GO  

Aqui está o conjunto de resultados.

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

A representação binária de 170 (a_int_value ou A, abaixo) é 0000 0000 1010 1010. A representação binária de 75 (b_int_value ou B, abaixo) é 0000 0000 0100 1011. Executar a operação OR bit a bit nesses dois valores produz o resultado 0000 0000 1110 1011binário , que é decimal 235.

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

Ver também

Operadores (Transact-SQL)
Operadores Bitwise (Transact-SQL)
|= (Atribuição Bitwise OR) (Transact-SQL)
Operadores compostos (Transact-SQL)