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

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsAnalytics Platform System (PDW)Ponto de extremidade de análise de SQL no Microsoft FabricDepósito no Microsoft FabricBanco de dados SQL no Microsoft Fabric

Executa uma operação lógica OR bit a bit entre dois valores inteiros.

Convenções de sintaxe de Transact-SQL

Syntax

expression | expression

Arguments

expression

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

Note

Apenas uma expression pode ser do tipo de dados binary ou varbinary em uma operação bit a bit.

Tipos de retorno

Retorna um int se os valores de entrada são int, um smallint se os valores de entrada são smallint ou um tinyint se os valores de entrada são tinyint.

Remarks

O | operador bit a bit executa uma lógica OR bit a bit entre as duas expressões, tomando cada bit correspondente para ambas as expressões. Os bits no resultado são definidos 1 como se um ou ambos os bits (para o bit atual que está sendo resolvido) nas expressões de entrada tiverem um valor igual 1a . Se nenhum dos bits 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 expression à esquerda é smallint e a expression à direita é int), o argumento do tipo de dados menor será convertido no tipo de dados maior. Nesse caso, a expressãosmallint é convertida em um 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 e no a_int_value bit b_int_value .

SELECT a_int_value | b_int_value
FROM bitwise;
GO

Veja a seguir o conjunto de resultados.

-----------
235

(1 row(s) affected)

A representação binária de 170 (a_int_value ou A) é 0000 0000 1010 1010. A representação binária de 75 (b_int_value ou B) é 0000 0000 0100 1011. Executar a operação bit a bit OR 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