Bitweise Operatoren (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric

Bitweise Operatoren bearbeiten Bits aus zwei Ausdrücken eines Datentyps der ganzzahligen Datentypkategorie.

Bitweise Operatoren konvertieren zwei ganzzahlige Werte in binäre Bitwerte und führen die Operationen AND, OR oder NOT für jedes Bit aus, wodurch ein Ergebnis ausgegeben wird. Dieses Ergebnis wird anschließend in einen Integer konvertiert.

Beispielsweise wird der Integer 170 in die Binärzahl 1010 1010 konvertiert.

Der Integer 75 wird in die Binärzahl 0100 1011 konvertiert.

Betreiber Bitweise Mathematik
AND

Wenn zwei Bits an einer beliebigen Position 1 lauten, wird auch 1 als Ergebnis ausgegeben.
1010 1010 = 170
0100 1011 = 75
-----------------
0000 1010 = 10
OR

Wenn ein Bit an einer beliebigen Position 1 lautet, ist das Ergebnis 1.
1010 1010 = 170
0100 1011 = 75
-----------------
1110 1011 = 235
NOT

Kehrt den Bitwert an jeder Bitposition um.
1010 1010 = 170
-----------------
0101 0101 = 85

Die folgenden Artikel enthalten weitere Informationen zu den bitweisen Operatoren, die in der Datenbank-Engine verfügbar sind:

Die folgenden bitweisen Operatoren wurden in SQL Server 2022 (16.x) eingeführt:

Die Operanden für bitweise Operatoren können beliebige Datentypen aus den Kategorien „Integer“ oder „binäre Zeichenfolge“ sein (außer dem image-Datentyp). Ausnahme ist, dass keiner der Operanden aus der Datentypkategorie für binäre Zeichenfolgen stammen kann. In der folgenden Tabelle sind alle Datentypen aufgeführt, die für Operanden unterstützt werden.

Linker Operand Rechter Operand
binary int, smallint oder tinyint
bit int, smallint, tinyint oder bit
bigint bigint, int, smallint, tinyint, binary oder varbinary
int int, smallint, tinyint, binary oder varbinary
smallint int, smallint, tinyint, binary oder varbinary
tinyint int, smallint, tinyint, binary oder varbinary
varbinary int, smallint oder tinyint

Weitere Informationen