論理関数
以下の関数は、任意の数値型の引数に対して論理演算を実行します。返される値は、UInt8として0または1、または場合によっては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演算子。
引数
戻り値
0
、少なくとも1つの引数がfalse
に評価される場合、NULL
、どの引数もfalse
に評価されず、少なくとも1つの引数が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演算子。
引数
戻り値
1
、少なくとも1つの引数がtrue
に評価される場合、0
、すべての引数がfalse
に評価される場合、NULL
、すべての引数がfalse
に評価され、少なくとも1つの引数がNULL
である場合。
例
結果:
NULL
を使用した場合:
結果:
not
値の論理否定を計算します。
構文
エイリアス: 否定演算子。
引数
戻り値
1
、val
がfalse
に評価される場合、0
、val
がtrue
に評価される場合、NULL
、val
がNULL
である場合。
例
結果:
xor
2つ以上の値の論理排他的和を計算します。2つ以上の入力値がある場合、関数は最初の2つの値をxorし、その結果を3つ目の値とxorします。
構文
引数
戻り値
1
、2つの値の場合: 1つの値がfalse
に評価され、もう1つの値が評価されない場合、0
、2つの値の場合: 両方の値がfalse
に評価されるか、両方の値がtrue
に評価される場合、NULL
、入力のいずれかがNULL
である場合。
例
結果: