Operatori bit per bit (Transact-SQL)
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure endpoint di analisi SQL di Azure Synapse Analytics Platform System (PDW) in Microsoft Fabric Warehouse in Microsoft Fabric
Gli operatori bit per bit eseguono manipolazioni di bit tra due espressioni di uno dei tipi di dati della categoria integer.
Gli operatori bit per bit convertono due valori interi in bit binari, eseguono l'operazione AND
, OR
o NOT
su ogni bit, generando un risultato. Quindi il risultato viene convertito in un valore Integer.
Ad esempio, l'intero 170
viene convertito in binario 1010 1010
.
L'intero 75
viene convertito in binario 0100 1011
.
Operatore | Matematica bit per bit |
---|---|
AND Se i bit in qualsiasi posizione sono entrambi 1 , il risultato è 1 . |
1010 1010 = 1700100 1011 = 75----------------- 0000 1010 = 10 |
OPPURE Se uno dei bit in qualsiasi posizione è 1 , il risultato è 1 . |
1010 1010 = 1700100 1011 = 75----------------- 1110 1011 = 235 |
NOT Inverte il valore di bit in ogni posizione di bit. |
1010 1010 = 170----------------- 0101 0101 = 85 |
Gli articoli seguenti forniscono altre informazioni sugli operatori bit per bit disponibili nella motore di database:
- & (AND bit per bit)
- &= (Assegnazione AND bit per bit)
- | (OR bit per bit)
- |= (Assegnazione OR bit per bit)
- ^ (OR esclusivo bit per bit)
- ^= (Assegnazione OR esclusivo bit per bit)
- ~ (NOT bit per bit)
Gli operatori bit per bit seguenti sono stati introdotti in SQL Server 2022 (16.x):
Gli operandi per gli operatori bit per bit possono essere uno dei tipi di dati delle categorie di tipi di dati integer o binary string (ad eccezione del tipo di dati image ), ad eccezione del fatto che entrambi gli operandi non possono essere uno dei tipi di dati della categoria di tipi di dati stringa binaria. Nella tabella seguente vengono descritti i tipi di dati supportati per gli operandi.
Operando sinistro | Operando destro |
---|---|
binary | int, smallint o tinyint |
bit | int, smallint, tinyint o bit |
bigint | bigint, int, smallint, tinyint, binary o varbinary |
int | int, smallint, tinyint, binary o varbinary |
smallint | int, smallint, tinyint, binary o varbinary |
tinyint | int, smallint, tinyint, binary o varbinary |
varbinary | int, smallint o tinyint |