逻辑运算函数
逻辑函数用来执行逻辑运算,结果是布尔值(Boolean)。
逻辑状态有 TRUE、FALSE、UNKNOWN 三种(NULL 值的逻辑状态是 UNKNOWN),因而 NOT TRUE 不一定是 FALSE,还可能是 UNKNOWN。
函数名 | 功能描述 |
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。