✅ Azure 流分析 ✅ 构造事件流
对整数值执行按位逻辑 NOT 运算。
语法
~ expression
论据
expression
数据类型位或 bigint 的任何有效表达式。 表达式被视为按位运算的二进制数。
返回类型
如果输入值为 bit,则为 bit。
如果输入值为 bigint,则 bigint。
注解
~ 按位运算符对表达式执行按位逻辑 NOT,并依次执行每个位。 如果表达式的值为 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 |
|---|---|---|---|---|---|
| 假 | 是 | Null | 是 | 假 | 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 |
|---|---|
| 位 | bigint |