^ (Bitweises exklusives OR) (Transact-SQL)

Führt einen bitweisen exklusiven OR-Vorgang zwischen zwei ganzzahligen Werten aus.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

expression ^ expression

Argumente

expression

Ein gültiger Ausdruck von einem Datentyp aus der ganzzahligen Datentypkategorie oder vom Datentyp bit, binary oder varbinary. expression wird für den bitweisen Vorgang als Binärzahl behandelt.

ms190277.note(de-de,SQL.90).gifHinweis:
Nur jeweils ein expression-Wert kann bei einem bitweisen Vorgang entweder vom Datentyp binary oder varbinary sein.

Hinweise

Mit dem bitweisen ^-Operator wird zwischen zwei Ausdrücken ein bitweises logisches exklusives OR ausgeführt, indem die jeweils entsprechenden Bits der beiden Ausdrücke verarbeitet werden. Ein Ergebnisbit wird genau dann auf den Wert 1 festgelegt, wenn genau ein Bit, also nicht beide Bits (für das aktuell aufzulösende Bit), der Eingabeausdrücke den Wert 1 aufweist. Falls die Bits beide den Wert 0 oder beide den Wert 1 besitzen, 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-Wert vom smallint-Datentyp und der rechte expression-Wert vom int-Datentyp), wird das Argument mit dem kleineren Datentyp in den größeren Datentyp konvertiert. In diesem Fall wird der expression-Wert vom Typ smallint in einen int-Ausdruck konvertiert.

Ergebnistypen

int, wenn die Eingabewerte vom int-Datentyp sind.

smallint, wenn die Eingabewerte vom smallint-Datentyp sind.

tinyint, wenn die Eingabewerte vom tinyint-Datentyp sind.

Beispiele

Das folgende Beispiel erstellt eine Tabelle mit dem int-Datentyp, um die ursprünglichen Werte zu speichern, und fügt zwei Werte in eine Zeile ein.

USE tempdb;
GO
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES 
    WHERE TABLE_NAME = 'bitwise')
DROP TABLE bitwise;
GO
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 das bitweise exklusive OR für die Spalten a_int_value und b_int_value aus.

USE tempdb;
GO
SELECT a_int_value ^ b_int_value
FROM bitwise;
GO

Im Folgenden wird das Resultset aufgeführt:

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

(1 row(s) affected)

Die Binärdarstellung von 170 (a_int_value oder A) ist 0000 0000 1010 1010. Die Binärdarstellung von 75 (b_int_value oder B) ist 0000 0000 0100 1011. Die Anwendung des bitweisen exklusiven OR-Vorgangs auf diese beiden Werte erzeugt das binäre Ergebnis 0000 0000 1110 0001, was dem dezimalen Wert 225 entspricht.

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

Siehe auch

Verweis

Ausdrücke (Transact-SQL)
Operatoren (Transact-SQL)

Andere Ressourcen

Bitweise Operatoren (Datenbankmodul)

Hilfe und Informationen

Informationsquellen für SQL Server 2005