& (AND bit per bit) (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics AnalyticsPlatform System (PDW)SQL analytics endpoint in Microsoft FabricWarehouse in Microsoft Fabric

Esegue un'operazione con AND logico bit per bit tra due valori integer.

Convenzioni di sintassi Transact-SQL

Sintassi

expression & expression  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Argomenti

expression
Qualsiasi espressione valida di qualsiasi tipo di dati della categoria Integer o del tipo di dati bit, binary o varbinary. expression viene considerato un numero binario per l'operazione bit per bit.

Nota

In un'operazione bit per bit un solo valore expression può avere il tipo di dati binary o varbinary.

Tipi restituiti

int se i valori di input sono int.

smallint se i valori di input sono smallint.

tinyint se i valori di input sono tinyint o bit.

Osservazioni:

L'operatore bit per bit esegue un AND logico bit per bit tra le due espressioni, prendendo ogni bit corrispondente per entrambe le espressioni. I bit del risultato vengono impostati su 1 se, e solo se, il valore del bit in fase di risoluzione di entrambe le espressioni di input è uguale a 1. In caso contrario, il bit del risultato viene impostato su 0.

Se alle due espressioni viene applicato un tipo di dati Integer diverso, ad esempio se il tipo expression a sinistra è smallint e il tipo expression a destra è int, l'argomento del tipo di dati di livello inferiore viene convertito nel tipo di dati di livello superiore. In questo caso smallintexpression viene convertito in int.

Esempi

Nell'esempio seguente viene creata una tabella con il tipo di dati int per l'archiviazione dei valori e i due valori vengono inseriti in un'unica riga.

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

La query esegue l'operazione con AND bit per bit tra le colonne a_int_value e b_int_value.

SELECT a_int_value & b_int_value  
FROM bitwise;  
GO  

Set di risultati:

-----------   
10            
  
(1 row(s) affected)  

La rappresentazione binaria di 170 (a_int_value o A) è 0000 0000 1010 1010. La rappresentazione binaria di 75 (b_int_value o B) è 0000 0000 0100 1011. L'esecuzione dell'operazione con AND bit per bit su questi valori genera il risultato binario 0000 0000 0000 1010, corrispondente al valore decimale 10.

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

Vedi anche

Espressioni (Transact-SQL)
Operatori (Transact-SQL)
Operatori bit per bit (Transact-SQL)
&= (assegnazione AND bit per bit) (Transact-SQL)
Operatori composti (Transact-SQL)