共用方式為


~ (位元反相)

✅ Azure 串流分析 ✅ 網狀架構事件串流

在整數值上執行位邏輯 NOT 運算。

語法

~ expression

論點

表示式

這是數據類型位或 bigint 的任何有效運算式。 表達式會被視為位運算的二進位數。

傳回型別

如果輸入值為 bit,則 bit

如果輸入值是 bigint則 bigint

備註

~ 位運算子會在表達式上執行位邏輯 NOT,並輪用每個位。 如果 expression 的值為 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
假的 假的

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

另請參閱