Bitweise Operatoren (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz Azure Synapse Analytics Platform System (PDW) SQL Analytics Platform-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric Warehouse
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 = 1700100 1011 = 75----------------- 0000 1010 = 10 |
OR Wenn ein Bit an einer beliebigen Position 1 lautet, ist das Ergebnis 1 . |
1010 1010 = 1700100 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:
- & (Bitweises AND)
- &= (Zuweisung bitweises AND)
- | (Bitweises OR)
- |= (Zuweisung bitweises OR)
- ^ (Bitweises exklusives OR)
- ^= (Zuweisung bitweises exklusives OR)
- ~ (Bitweises NOT)
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 |