Operadores bit a bit (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW) Ponto de extremidade de análise de SQL no Microsoft Fabric Warehouse no Microsoft Fabric Banco de Dados SQL no Microsoft Fabric
Os operadores bit a bit desempenham manipulações de bit entre duas expressões de qualquer um dos tipos de dados da categoria de tipo de dados inteiro.
Os operadores bit a bit convertem dois valores inteiros em bits binários, executam a operação AND
, OR
ou NOT
em cada bit, produzindo um resultado. Em seguida, eles convertem o resultado em um inteiro.
Por exemplo, o inteiro 170
é convertido no binário 1010 1010
.
O inteiro 75
é convertido no binário 0100 1011
.
Operador | Matemática bit a bit |
---|---|
AND Se os bits em qualquer posição forem 1 , o resultado será 1 . |
1010 1010 = 1700100 1011 = 75----------------- 0000 1010 = 10 |
OR Se um dos bits em qualquer posição for 1 , o resultado será 1 . |
1010 1010 = 1700100 1011 = 75----------------- 1110 1011 = 235 |
NOT Reverte o valor do bit em cada posição de bit. |
1010 1010 = 170----------------- 0101 0101 = 85 |
Os artigos a seguir fornecem mais informações sobre os operadores bit a bit disponíveis no Mecanismo de Banco de Dados:
- & (AND bit a bit)
- &= (Atribuição AND bit a bit)
- | (OR bit a bit)
- |= (Atribuição OR bit a bit)
- ^ (OR exclusivo bit a bit)
- ^= (Atribuição de OR exclusivo bit a bit)
- ~ (Não de bit a bit)
Os seguintes operadores bit a bit foram introduzidos no SQL Server 2022 (16.x):
Os operandos dos operadores bit a bit podem ser um dos tipos de dados das categorias de tipo de dados inteiro ou cadeia de caracteres binária (exceto o tipo de dados image), mas os operadores não podem ser um dos tipos de dados da categoria de tipo de dados de cadeia de caracteres binária. A tabela a seguir mostra os tipos de dados de operando com suporte.
Operando da esquerda | Operando da direita |
---|---|
binary | int, smallint ou tinyint |
bit | int, smallint, tinyint ou bits |
bigint | bigint, int, smallint, tinyint, binary ou varbinary |
int | int, smallint, tinyint, binary ou varbinary |
smallint | int, smallint, tinyint, binary ou varbinary |
tinyint | int, smallint, tinyint, binary ou varbinary |
varbinary | int, smallint ou tinyint |