論理関数
以下の関数は、任意の数値型の引数に対して論理演算を行います。出力は0または1で、UInt8または場合によっては NULL
になります。
引数の0は false
とみなされ、非ゼロの値は true
とみなされます。
and
2つ以上の値の論理積を計算します。
設定 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)
を実行する際にゼロ除算の例外が発生しません。
構文
エイリアス: AND演算子。
引数
返される値
- いずれかの引数が
false
と評価される場合は0
、 - いずれの引数も
false
と評価されず、少なくとも1つの引数がNULL
の場合はNULL
、 - それ以外の場合は
1
。
例
結果:
NULL
を使用した場合:
結果:
or
2つ以上の値の論理和を計算します。
設定 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)
を実行する際にゼロ除算の例外が発生しません。
構文
エイリアス: OR演算子。
引数
返される値
- いずれかの引数が
true
と評価される場合は1
、 - すべての引数が
false
と評価される場合は0
、 - すべての引数が
false
と評価され、少なくとも1つの引数がNULL
の場合はNULL
。
例
結果:
NULL
を使用した場合:
結果:
not
値の論理否定を計算します。
構文
エイリアス: 否定演算子。
引数
返される値
val
がfalse
と評価される場合は1
、val
がtrue
と評価される場合は0
、val
がNULL
の場合はNULL
。
例
結果:
xor
二つ以上の値の論理排他的和を計算します。2つ以上の入力値がある場合、関数は最初の二つの値をまず XOR し、その後の結果を三番目の値と XOR するというように進みます。
構文
引数
返される値
- 2つの値の場合: いずれかの値が
false
で、他がtrue
の場合は1
、 - 2つの値の場合: 両方の値が
false
または両方がtrue
の場合は0
、 - 入力の少なくとも1つが
NULL
の場合はNULL
。
例
結果: