次の方法で共有


~ (ビットごとの NOT)

✅ Azure Stream Analytics ✅ Fabric Eventstream

整数値に対してビットごとの論理 NOT 演算を実行します。

構文

~ expression

論争

データ型 bit または bigint の任意の有効な式です。 式は、ビットごとの演算の 2 進数として扱われます。

戻り値の型

入力 値がビットの場合は bit

入力値が bigint の場合は bigint

注釈

~ ビットごとの演算子は、式に対してビットごとの論理 NOT を実行し、各ビットを順番に取得します。 式の値が 0 の場合、結果セット内のビットは 1 に設定されます。それ以外の場合、結果のビットは 0 の値にクリアされます。 つまり、1 は 0 に変更され、ゼロは 1 に変更されます。

図では、170 のバイナリ表現は 0000 0000 1010 1010 です。 この値に対してビットごとの NOT 演算を実行すると、2 進結果 1111 1111 0101 0101 (10 進 -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
ビット bigint

こちらもご覧ください