^ (Bitweise exklusiv ODER) (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-Analyseendpunkt in Microsoft FabricLagerhaus in Microsoft FabricSQL-Datenbank in Microsoft Fabric

Führt einen bitweise logischen Exklusivvorgang OR zwischen zwei ganzzahligen Werten aus.

Transact-SQL-Syntaxkonventionen

Syntax

expression ^ expression

Arguments

expression

Ein beliebiger gültiger Ausdruck eines der Datentypen "Integer" oder " bit" oder " binary " oder "varbinary ". expression wird in der bitweisen Operation als binäre Zahl behandelt.

Note

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

Rückgabetypen

int, wenn die Eingabewerte vom Typ int sind.

smallint, wenn die Eingabewerte vom Typ smallint sind.

tinyint, wenn die Eingabewerte vom Typ tinyint sind

Remarks

Der ^ Bitweise-Operator führt eine bitweise logische Exklusivität OR zwischen den beiden Ausdrücken aus, wobei jedes entsprechende Bit für beide Ausdrücke verwendet wird. Die Bits im Ergebnis werden festgelegt, 1 wenn beide Bits (für das aktuelle Bit, das aufgelöst wird) in den Eingabeausdrücken einen Wert aufweisen 1. Wenn beide Bits oder beide Bits sind 01, wird das Bit im Ergebnis auf einen Wert von 0.

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.

Examples

Im folgenden Beispiel wird eine Tabelle mit dem int-Datentyp erstellt, um die ursprünglichen Werte zu speichern, und zwei Werte in eine Zeile einfügt.

CREATE TABLE bitwise
(
    a_int_value INT NOT NULL,
    b_int_value INT NOT NULL
);
GO

INSERT bitwise
VALUES (170, 75);
GO

Die folgende Abfrage führt die Bitweise exklusiv OR für die und b_int_value die a_int_value Spalten aus.

SELECT a_int_value ^ b_int_value
FROM bitwise;
GO

Hier ist das Ergebnis.

-----------
225

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. Durch ausführen des bitweise exklusiven OR Vorgangs für diese beiden Werte wird das binäre Ergebnis 0000 0000 1110 0001erzeugt, das dezimal 225 ist.

(A ^ B)
         0000 0000 1010 1010
         0000 0000 0100 1011
         -------------------
         0000 0000 1110 0001