& (Bitwise E) (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

Realiza uma operação lógica AND bit a bit entre dois valores inteiros.

Transact-SQL convenções de sintaxe

Syntax

expression & expression

Arguments

expression

Qualquer expressão válida de qualquer um dos tipos de dados da categoria de tipos de dados inteiros, ou do bit, ou dos tipos de dados binários ou varbinários . expression é tratada como um número binário para a operação bitwise.

Note

Em uma operação bitwise, apenas uma expressão pode ser do tipo de dados binário ou varbinary .

Tipos de devolução

  • int se os valores de entrada forem int.
  • smallint se os valores de entrada forem smallint.
  • tinyint se os valores de entrada forem tinyint ou bit.

Remarks

O & operador bit a bit executa uma lógica AND bit a bit entre as duas expressões, tomando cada bit correspondente para ambas as expressões. Os bits no resultado são definidos para 1 se, e somente se, ambos os bits (para o bit atual a ser resolvido) nas expressões de entrada tiverem um valor de 1. Caso contrário, o bit no resultado é 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 caso, a expressãosmallint é convertida em int.

Examples

O exemplo a seguir cria uma tabela usando o tipo de dados int para armazenar os valores e insere dois valores 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

Esta consulta executa a análise bit AND a bit entre as a_int_value colunas e b_int_value .

SELECT a_int_value & b_int_value
FROM bitwise;
GO

Aqui está o conjunto de resultados.

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

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. Realizar a operação bit a AND bit nestes dois valores produz o resultado 0000 0000 0000 1010binário , que é decimal 10.

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