Freigeben über


& (Bitweise UND) (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL Analytics-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric

Führt eine bitweise logische AND-Operation zwischen zwei ganzzahligen Werten aus.

Transact-SQL-Syntaxkonventionen

Syntax

expression & expression  

Argumente

expression
Ein beliebiger gültiger Ausdruck eines beliebigen Datentyps der ganzzahligen Datentypkategorie oder des Datentyps bit, binary oder varbinary. expression wird in der bitweisen Operation als binäre Zahl behandelt.

Hinweis

Nur eines der expression-Argumente kann in einer bitweisen Operation vom Datentyp binary oder varbinary sein.

Ergebnistypen

int, wenn die Eingabewerte vom Typ int sind.

smallint, wenn die Eingabewerte vom Typ smallint sind.

tinyint, wenn die Eingabewerte vom Typ tinyint oder bit sind.

Hinweise

Der Operator " & bitweise" führt ein bitweises logisches UND zwischen den beiden Ausdrücken aus, wobei jedes entsprechende Bit für beide Ausdrücke verwendet wird. Ein Ergebnisbit wird genau dann auf den Wert 1 festgelegt, wenn beide Bits (für das aktuell aufzulösende Bit) der Eingabeausdrücke den Wert 1 aufweisen. Andernfalls wird das entsprechende Bit im Ergebnis auf 0 festgelegt.

Wenn der linke und der rechte Ausdruck unterschiedliche ganzzahlige Datentypen aufweisen (beispielsweise ist der linke expression-Ausdruck vom Datentyp smallint und der rechte expression-Ausdruck von Datentyp int), wird das Argument mit dem kleineren Datentyp in den größeren Datentyp konvertiert. In diesem Fall wird der smallint-Ausdruck in einen int konvertiert.

Beispiele

Im folgenden Beispiel wird eine Tabelle mithilfe des int-Datentyps erstellt, um die Werte zu speichern. Zwei Werte werden in einer Zeile eingefügt.

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

Diese Abfrage führt ein bitweises AND zwischen den Spalten a_int_value und b_int_value durch.

SELECT a_int_value & b_int_value  
FROM bitwise;  
GO  

Im Folgenden wird das Resultset aufgeführt:

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

Die binäre Darstellung von 170 (a_int_value oder A) ist 0000 0000 1010 1010. Die binäre Darstellung von 75 (b_int_value oder B) ist 0000 0000 0100 1011. Wird eine bitweise AND-Operation auf diese beiden Werte angewendet, resultiert daraus das binäre Ergebnis 0000 0000 0000 1010, das dem Dezimalwert 10 entspricht.

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

Weitere Informationen

Ausdrücke (Transact-SQL)
Operatoren (Transact-SQL)
Bitweise Operatoren (Transact-SQL)
&= (Bitweise UND Zuordnung) (Transact-SQL)
Verbundoperatoren (Transact-SQL)