論理関数
以下の関数は、任意の数値型の引数に対して論理演算を行います。
これらは、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)
例
基本的な使用法