Freigeben über


& (bitweise AND) (Azure Stream Analytics)

Führt einen bitweisen logischen AND-Vorgang 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 ein oder beide Eingabewerte bigint sind.

Hinweise

Der & bitweisen Operator führt ein bitweises logisches AND zwischen den beiden Ausdrücken aus, wobei jedes entsprechende Bit für beide Ausdrücke verwendet wird. Ein Ergebnisbit wird genau dann auf den Wert 1 festgelegt, wenn beide Bits (für das aktuell aufzulösende Bit) der Eingabeausdrücke den Wert 1 aufweisen. Andernfalls wird das entsprechende Bit im Ergebnis auf 0 festgelegt.

Zur Veranschaulichung ist die binäre Darstellung von 170 0000 0000 1010 1010. Die binäre Darstellung von 75 ist 0000 0000 0100 1011. Durch Ausführen des bitweisen AND-Vorgangs für diese beiden Werte wird das binäre Ergebnis 0000 0000 0000 1010 erzeugt, das dezimal 10 ist.

(170 & 75)
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 0000 1010

Es ist zu beachten, dass das Umwandeln eines FLOAT-Werts auf BIGINT und das Anwenden eines bitweisen Operators auf diesen in den meisten Fällen nicht das gleiche Ergebnis wie das Umwandeln in BIT und das Anwenden desselben Operators zurückgibt:

  • Erste Option : 170 & 75.0 => 170 & 75 = 10
  • Zweite Option : 170 & 75,0 => 170 & 1 = 0

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 AND00,
	bit0 & bit1 AS AND01,
	bit1 & bit0 AS AND10,
	bit1 & bit1 AS AND11,
	bitN & bit0 AS ANDnull
INTO bitAND
FROM MyCTE

Rückgabewerte:

bit0 bit1 bitN AND00 AND01 AND10 AND11 ANDnull
false true NULL false false false true NULL

Anwenden des Operators auf bigint-Ausdrücke :

SELECT
	bigint0,
	bigint1,
	bigintN,
	bigint0 & bigint0 AS AND00,
	bigint0 & bigint1 AS AND01,
	bigint1 & bigint0 AS AND10,
	bigint1 & bigint1 AS AND11,
	bigintN & bigint1 AS ANDnull,
    170 & 75 AS ANDvalues
INTO bigintAND
FROM MyCTE

Rückgabewerte:

bigint0 bigint1 bigintN AND00 AND01 AND10 AND11 ANDnull ANDvalues
0 1 NULL 0 0 0 1 NULL 10

Überprüfen der Ausgabetypen:

SELECT
    GetType(bit0 & bit0) AS ANDtype_bit,
    GetType(bigint0 & bigint0) AS ANDtype_bigint,
    GetType(bit0 & bigint0) AS ANDtype_mixed
INTO typesAND
FROM MyCTE

Rückgabewerte:

ANDtype_bit ANDtype_bigint ANDtype_mixed
bit BIGINT BIGINT

Weitere Informationen