帮你快速理解、总结文档立即下载

逻辑和位运算函数

最近更新时间:2026-07-06 16:01:30

我的收藏

逻辑运算函数

逻辑函数用来执行逻辑运算,结果是布尔值(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。