Freigeben über


~ (Bitweises NOT) (Azure Stream Analytics)

Führt eine bitweise logische NOT-Operation für einen ganzzahligen Wert durch.

Syntax

~ 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 der Eingabewert Bit ist.

bigint , wenn der Eingabewert bigint ist.

Hinweise

Der bitweise ~-Operator führt ein bitweises logisches NOT für den Ausdruck aus, wobei jedes Bit nacheinander verwendet wird. Wenn der Ausdruck den Wert 0 besitzt, wird für die Bits im Resultset 1 festgelegt. Andernfalls wird das Bit im Ergebnis gelöscht (also auf 0 festgelegt). Mit anderen Worten, Einsen werden zu Nullen und Nullen werden zu Einsen geändert.

Zur Veranschaulichung ist die binäre Darstellung von 170 0000 0000 1010. Wenn Sie den bitweisen NOT-Vorgang für diesen Wert ausführen, wird das binäre Ergebnis 1111 1111 0101 0101 erzeugt, das dezimal -171 ist.

(~170)
0000 0000 1010 1010
-------------------
1111 1111 0101 0101

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 AS NOT0,
	~ bit1 AS NOT1,
	~ bitN AS NOTnull
INTO bitNOT
FROM MyCTE

Rückgabewerte:

bit0 bit1 bitN NOT0 NOT1 NOTnull
false true NULL true false NULL

Anwenden des Operators auf bigint-Ausdrücke :

SELECT
	bigint0,
	bigint1,
	bigintN,
	~ bigint0 AS NOT0,
	~ bigint1 AS NOT1,
	~ bigintN AS NOTnull,
	~ 170 AS NOT170
INTO bigintNOT
FROM MyCTE

Rückgabewerte:

bit0 bit1 bitN NOT0 NOT1 NOTnull NOT170
0 1 NULL -1 -2 NULL -171

Überprüfen der Ausgabetypen:

SELECT
	GetType(~ bit0) AS NOTtype_bit,
	GetType(~ bigint0) AS NOTtype_bigint
INTO typesNOT
FROM MyCTE

Rückgabewerte:

NOTtype_bit NOTtype_bigint
bit BIGINT

Weitere Informationen