流计算 Oceanus 逻辑和位运算函数

逻辑函数用来执行逻辑运算,结果是布尔值(Boolean)。逻辑状态有 TRUE、FALSE、UNKNOWN 三种(NULL 值的逻辑状态是 UNKNOWN),因而 NOT TRUE 不一定是 FALSE,还可能是 UNKNOWN。

相关产品
流计算 Oceanus 产品页,含版本规格、价格与购买入口。

一、逻辑运算函数

函数名 功能描述
boolean1 OR boolean2 如果 boolean1 或者 boolean2 任意一个为 TRUE,则返回 TRUE,否则返回 FALSE。
boolean1 AND boolean2 当且仅当 boolean1 和 boolean2 均为 TRUE 时才返回 TRUE,否则返回 FALSE。
NOT boolean 如果 boolean 为 TRUE 则返回 FALSE;如果为 FALSE 则返回 TRUE;如果为 UNKNOWN 则返回 UNKNOWN。
boolean IS FALSE 如果 boolean 为 FALSE 则返回 TRUE;如果 boolean 为 UNKNOWN 则返回 FALSE。
boolean IS NOT FALSE 如果 boolean 不为 FALSE 则返回 TRUE;如果为 UNKNOWN 则返回 TRUE。
boolean IS UNKNOWN 如果 boolean 为 UNKNOWN 则返回 TRUE,否则返回 FALSE。
boolean IS NOT UNKNOWN 如果 boolean 不为 UNKNOWN 则返回 TRUE,否则返回 FALSE。

二、BITAND

支持版本:Flink 1.16及以上版本。

功能描述:BITAND 用于对两个整数按位进行与(AND)运算。对两个整数的每一位进行比较,仅当两个对应位都为 1 时,结果位才为 1,否则为 0。

语法:BITAND(a, b)

参数说明:

参数 数据类型 说明
a TINYINT / SMALLINT / INT / BIGINT 第一个整数值。如果为 NULL,视为 0
b TINYINT / SMALLINT / INT / BIGINT 第二个整数值。如果为 NULL,视为 0

两个参数的数据类型必须一致。

返回值:

返回类型 说明
与输入类型一致 返回按位与运算的结果。如果任一输入为 NULL,则该输入视为 0 参与运算。

示例:基本按位与运算

SELECT BITAND(6, 3) AS result;

返回结果:2

三、BITNOT

支持版本:Flink 1.16及以上版本。

功能描述:BITNOT 用于对一个整数按位取反(NOT)运算。将整数的每一位进行反转,即 0 变 1,1 变 0。

语法:BITNOT(a)

参数说明:

参数 数据类型 说明
a TINYINT / SMALLINT / INT / BIGINT 需要按位取反的整数值。如果为 NULL,视为 0。

返回值:

返回类型 说明
与输入类型一致 返回按位取反的结果。如果输入为 NULL,则视为对 0 取反。

示例:基本按位取反运算

SELECT BITNOT(5) AS result;

返回结果:-6

四、BITOR

支持版本:Flink 1.16及以上版本。

功能描述:BITOR 用于对两个整数按位进行或(OR)运算。对两个整数的每一位进行比较,只要有一个对应位为 1,结果位就为 1,否则为 0。

语法:BITOR(a, b)

参数说明:

参数 数据类型 说明
a TINYINT / SMALLINT / INT / BIGINT 第一个整数值。如果为 NULL,视为 0
b TINYINT / SMALLINT / INT / BIGINT 第二个整数值。如果为 NULL,视为 0

返回值:

返回类型 说明
与输入类型一致 返回按位或运算的结果。如果任一输入为 NULL,则该输入视为 0 参与运算。

示例:基本按位进行或运算

SELECT BITOR(6, 3) AS result;

返回结果:7

五、BITXOR

支持版本:Flink 1.16及以上版本。

功能描述:BITXOR 用于对两个整数按位进行异或(XOR)运算。对两个整数的每一位进行比较,当两个对应位不同时结果位为 1,相同时为 0。

语法:BITXOR(a, b)

参数说明:

参数 数据类型 说明
a TINYINT / SMALLINT / INT / BIGINT 第一个整数值。如果为 NULL,视为 0
b TINYINT / SMALLINT / INT / BIGINT 第二个整数值。如果为 NULL,视为 0

两个参数的数据类型必须一致。

返回值:

返回类型 说明
与输入类型一致 返回按位异或运算的结果。如果任一输入为 NULL,则该输入视为 0 参与运算。

示例:基本按位进行异或运算

SELECT BITXOR(6, 3) AS result; 

返回结果:5

注意:说明:

注意:6 的二进制为 110,3 的二进制为 011,按位异或结果为 101,即 5。

赞 (0)
上一篇 4天前
下一篇 4天前