计算两个或多个值之间的逻辑连接结果。对应于逻辑与运算符。
语法
and(val1, val2...)
参数
val1, val2, ...— 至少两个值的列表。Int、UInt、Float 或 Nullable。返回值
0,如果至少有一个零值参数。NULL,如果没有零值参数并且至少有一个NULL参数。1,其他情况。类型:UInt8 或 Nullable(UInt8)。
示例
SELECT and(0, 1, -2);
┌─and(0, 1, -2)─┐ │ 0 │ └───────────────┘
和NULL:
SELECT and(NULL, 1, 10, -2);
┌─and(NULL, 1, 10, -2)─┐ │ ᴺᵁᴸᴸ │ └──────────────────────┘
计算两个或多个值之间的逻辑或的结果。对应于逻辑或运算符。
语法
or(val1, val2...)
参数
val1, val2, ...— 至少两个值的列表。Int、UInt、Float 或 Nullable。返回值
1,如果至少有一个非零值。0,如果只有零值。NULL,如果只有零值和NULL。类型:UInt8 或 Nullable(UInt8)。
示例
SELECT or(1, 0, 0, 2, NULL);
┌─or(1, 0, 0, 2, NULL)─┐ │ 1 │ └──────────────────────┘
计算两个或多个值之间的逻辑排他或结果。对于两个以上的值,该函数的工作方式是先计算XOR前两个值,然后使用结果和下一个值进行计算XOR,依此类推。
语法
xor(val1, val2...)
参数
val1, val2, ...— 至少两个值的列表。Int、UInt、Float 或 Nullable。返回值
1,对于两个值:如果其中一个值为零,而另一个值为不零。0,对于两个值:如果两个值同时为零或非零。NULL,如果至少有一个NULL值。类型:UInt8 或 Nullable(UInt8)。
示例
SELECT xor(0, 1, 1);
┌─xor(0, 1, 1)─┐ │ 0 │ └──────────────┘
和NULL:
SELECT xor(NULL, 0);
┌─xor(NULL, 0)─┐ │ ᴺᵁᴸᴸ │ └──────────────┘