メインコンテンツまでスキップ
メインコンテンツまでスキップ

論理関数

以下の関数は、任意の数値型の引数に対して論理演算を行います。出力は0または1で、UInt8または場合によっては NULL になります。

引数の0は false とみなされ、非ゼロの値は true とみなされます。

and

2つ以上の値の論理積を計算します。

設定 short_circuit_function_evaluation により、ショートサーキット評価が使用されるかどうかを制御します。有効な場合、val_ival_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

型: UInt8 または Nullable(UInt8)。

結果:

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

型: UInt8 または Nullable(UInt8)。

結果:

NULL を使用した場合:

結果:

not

値の論理否定を計算します。

構文

エイリアス: 否定演算子

引数

返される値

  • valfalse と評価される場合は 1
  • valtrue と評価される場合は 0
  • valNULL の場合は NULL

型: UInt8 または Nullable(UInt8)。

結果:

xor

二つ以上の値の論理排他的和を計算します。2つ以上の入力値がある場合、関数は最初の二つの値をまず XOR し、その後の結果を三番目の値と XOR するというように進みます。

構文

引数

返される値

  • 2つの値の場合: いずれかの値が false で、他が true の場合は 1
  • 2つの値の場合: 両方の値が false または両方が true の場合は 0
  • 入力の少なくとも1つが NULL の場合は NULL

型: UInt8 または Nullable(UInt8)。

結果: