論理関数
以下の関数は、任意の数値型の引数に対して論理演算を行います。
これらは、UInt8として0または1を返すか、場合によってはNULLを返します。
引数としてのゼロはfalseと見なされ、非ゼロの値はtrueと見なされます。
and
導入されたバージョン: v1.1
二つ以上の値の論理的結合を計算します。
short_circuit_function_evaluationを設定することで、ショートサーキット評価が使用されるかどうかを制御します。
有効にすると、val_iは(val_1 AND val_2 AND ... AND val_{i-1})がtrueの場合にのみ評価されます。
例えば、ショートサーキット評価を使用すると、クエリSELECT and(number = 2, intDiv(1, number)) FROM numbers(5)を実行する際にゼロ除算の例外は発生しません。
引数としてのゼロはfalseと見なされ、非ゼロの値はtrueと見なされます。
構文
引数
val1, val2[, ...]— 至少2つの値のリスト。Nullable((U)Int*)またはNullable(Float*)
戻り値
次を返します:
0、もし少なくとも1つの引数がfalseに評価される場合NULL、もし全ての引数がfalseに評価されず、かつ少なくとも1つの引数がNULLの場合1、それ以外の場合Nullable(UInt8)
例
基本的な使用法
NULLを使用する場合
not
導入されたバージョン: v1.1
値の論理的否定を計算します。
引数としてのゼロはfalseと見なされ、非ゼロの値はtrueと見なされます。
構文
引数
戻り値
次を返します:
1、もしvalがfalseに評価される場合0、もしvalがtrueに評価される場合NULL、もしvalがNULLである場合。Nullable(UInt8)
例
基本的な使用法
or
導入されたバージョン: v1.1
二つ以上の値の論理的選言を計算します。
short_circuit_function_evaluationを設定することで、ショートサーキット評価が使用されるかどうかを制御します。
有効にすると、val_iは((NOT val_1) AND (NOT val_2) AND ... AND (NOT val_{i-1}))がtrueの場合にのみ評価されます。
例えば、ショートサーキット評価を使用すると、クエリSELECT or(number = 0, intDiv(1, number) != 0) FROM numbers(5)を実行する際にゼロ除算の例外は発生しません。
引数としてのゼロはfalseと見なされ、非ゼロの値はtrueと見なされます。
構文
引数
val1, val2[, ...]— 至少2つの値のリスト。Nullable((U)Int*)またはNullable(Float*)
戻り値
次を返します:
1、もし少なくとも1つの引数がtrueに評価される場合0、もし全ての引数がfalseに評価される場合NULL、もし全ての引数がfalseに評価され、かつ少なくとも1つの引数がNULLの場合Nullable(UInt8)
例
基本的な使用法
NULLを使用する場合
xor
導入されたバージョン: v1.1
二つ以上の値の論理的排他的選言を計算します。
二つ以上の入力値がある場合、関数は最初の2つの値をxorし、その結果を3番目の値とxorするなどの操作を行います。
引数としてのゼロはfalseと見なされ、非ゼロの値はtrueと見なされます。
構文
引数
val1, val2[, ...]— 至少2つの値のリスト。Nullable((U)Int*)またはNullable(Float*)
戻り値
次を返します:
1、二つの値の場合: もし一方の値がfalseに評価され、もう一方が評価されない場合0、二つの値の場合: もし両方の値がfalseに評価されるか、両方がtrueに評価される場合NULL、もし少なくとも一つの入力がNULLである場合。Nullable(UInt8)
例
基本的な使用法