^ (Bitweises exklusives OR) (Azure Stream Analytics)
Führt einen bitweisen logischen exklusiven OR-Vorgang (XOR) zwischen zwei ganzzahligen Werten aus, wobei jedes entsprechende Bit aus beiden Ausdrücken ausgewertet wird.
Syntax
expression ^ expression
Argumente
expression
Ist ein beliebiger gültiger Ausdruck der Datentypen bit oder bigint. Ausdruck wird als binäre Zahl für den bitweisen Vorgang behandelt.
Rückgabetypen
bit , wenn beide Eingabewerte Bit sind.
bigint , wenn einer oder beide Eingabewerte bigint sind.
Hinweise
Der bitweise ^-Operator führt ein bitweises logisches exklusives OR zwischen den beiden Ausdrücken aus, wobei jedes entsprechende Bit für beide Ausdrücke verwendet wird. Die Bits im Ergebnis werden auf 1 festgelegt, wenn eines (aber nicht beide) Bits (für das aktuelle Bit, das aufgelöst wird) in den Eingabeausdrücken den Wert 1 aufweist; Andernfalls wird das Bit im Ergebnis auf 0 festgelegt.
Zur Veranschaulichung ist die binäre Darstellung von 170 0000 0000 1010. Die binäre Darstellung von 75 ist 0000 0000 0100 1011. Wenn Sie den bitweisen XOR-Vorgang für diese beiden Werte ausführen, wird das binäre Ergebnis 0000 0000 1110 0001 erzeugt, das dezimal 225 ist.
(170 ^ 75)
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 1110 0001
Es ist zu beachten, dass das Umwandeln eines FLOAT-Werts in BIGINT und das Anwenden eines bitweisen Operators darauf meistens nicht das gleiche Ergebnis wie die Umwandlung in BIT und anwenden desselben Operators zurückgibt:
- Erste Option: 170 ^ 75.0 => 170 ^ 75 = 225
- Zweite Option: 170 ^ 75.0 => 170 ^ 1 = 171
Die Regeln für die Konvertierung in Bit finden Sie in der Übersicht über Datentypen.
Beispiele
Mit einem allgemeinen Eingabedataset:
WITH MyCTE AS (
SELECT
CAST(0 AS BIT) AS bit0,
CAST(1 AS BIT) AS bit1,
CAST(NULL AS BIT) AS bitN,
CAST(0 AS BIGINT) AS bigint0,
CAST(1 AS BIGINT) AS bigint1,
CAST(NULL AS BIGINT) AS bigintN
FROM input
)
Anwenden des Operators auf Bitausdrücke :
SELECT
bit0,
bit1,
bitN,
bit0 ^ bit0 AS XOR00,
bit0 ^ bit1 AS XOR01,
bit1 ^ bit0 AS XOR10,
bit1 ^ bit1 AS XOR11,
bitN ^ bit1 AS XORnull
INTO bitXOR
FROM MyCTE
Rückgabewerte:
bit0 | bit1 | bitN | XOR00 | XOR01 | XOR10 | XOR11 | XORnull |
---|---|---|---|---|---|---|---|
false | true | NULL | false | true | true | false | NULL |
Anwenden des Operators auf bigint-Ausdrücke :
SELECT
bigint0,
bigint1,
bigintN,
bigint0 ^ bigint0 AS XOR00,
bigint0 ^ bigint1 AS XOR01,
bigint1 ^ bigint0 AS XOR10,
bigint1 ^ bigint1 AS XOR11,
bigintN ^ bigint1 AS XORnull,
170 ^ 75 AS XORvalues
INTO bigintXOR
FROM MyCTE
Rückgabewerte:
bigint0 | bigint1 | bigintN | XOR00 | XOR01 | XOR10 | XOR11 | XORnull | XOR-Werte |
---|---|---|---|---|---|---|---|---|
0 | 1 | NULL | 0 | 1 | 1 | 0 | NULL | 225 |
Überprüfen der Ausgabetypen:
SELECT
GetType(bit0 ^ bit0) AS XORtype_bit,
GetType(bigint0 ^ bigint0) AS XORtype_bigint,
GetType(bit0 ^ bigint0) AS XORtype_mixed
INTO typesXOR
FROM MyCTE
Rückgabewerte:
XORtype_bit | XORtype_bigint | ORtype_mixed |
---|---|---|
bit | BIGINT | BIGINT |
Weitere Informationen
- Bitweise Operatoren (Azure Stream Analytics)
- & (bitweises AND) (Azure Stream Analytics)
- | (Bitweises OR) (Azure Stream Analytics)
- ~ (bitweises NOT)(Azure Stream Analytics)
- Übersicht über Datentypen (Azure Stream Analytics)
- Konvertierungsfunktionen (Azure Stream Analytics)
- Integrierte Funktionen (Azure Stream Analytics)