Поделиться через


~ (побитовое NOT) (Azure Stream Analytics)

Выполняет побитовую логическую операцию НЕ с целочисленным значением.

Синтаксис

~ expression

Аргументы

expression

Любое допустимое выражение типов данных bit или bigint. Выражение обрабатывается как двоичное число для побитовой операции.

Типы возвращаемых данных

bit , если входное значение имеет значение bit.

bigint , если входное значение — bigint.

Комментарии

Побитовый оператор ~ выполняет побитовое логическое НЕ в выражении, принимая каждый бит по очереди. Если выражение имеет значение 0, все биты в результирующем наборе принимают значение 1, в обратном случае биты результата очищаются и принимают значение 0. Другими словами, единицы меняются на нули, нули меняются на единицы.

Для иллюстрации двоичное представление 170 равно 0000 0000 1010 1010. Выполнение побитовой операции NOT с этим значением приводит к двоичному результату 1111 1111 0101 0101, то есть десятичному -171.

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

Примеры

С общим входным набором данных:

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
)

Применение оператора к бит-выражениям :

SELECT
	bit0,
	bit1,
	bitN,
	~ bit0 AS NOT0,
	~ bit1 AS NOT1,
	~ bitN AS NOTnull
INTO bitNOT
FROM MyCTE

Возвращает:

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

Применение оператора к выражениям bigint :

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

Возвращает:

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

Проверка типов выходных данных:

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

Возвращает:

NOTtype_bit NOTtype_bigint
bit BIGINT

См. также: