计算两个或多个值之间的逻辑连接结果。对应于逻辑与运算符。
语法
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)─┐ │ ᴺᵁᴸᴸ │ └──────────────┘