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


~ (битовое НЕ)

✅ Поток событий Azure Stream Analytics ✅ Fabric

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

Синтаксис

~ expression

Аргументы

выражение

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

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

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

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

Замечания

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

Для иллюстрации двоичное представление 170 равно 0000 0000 1010 1010. При выполнении побитовой операции NOT для этого значения создается двоичный результат 1111 111 0101 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
неправда правда Отсутствует правда неправда Отсутствует

Применение оператора к выражениям 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 Отсутствует -1 -2 Отсутствует -171

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

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

Возвращает:

NOTtype_bit NOTtype_bigint
кусочек Бигинт

См. также