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

論理関数

以下の関数は、任意の数値型の引数に対して論理演算を実行します。返される値は、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演算子

引数

  • val1, val2, ... — 少なくとも2つの値のリスト。IntUIntFloat、またはNullable

戻り値

  • 0、少なくとも1つの引数がfalseに評価される場合、
  • NULL、どの引数もfalseに評価されず、少なくとも1つの引数が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演算子

引数

  • val1, val2, ... — 少なくとも2つの値のリスト。IntUIntFloat、またはNullable

戻り値

  • 1、少なくとも1つの引数がtrueに評価される場合、
  • 0、すべての引数がfalseに評価される場合、
  • NULL、すべての引数がfalseに評価され、少なくとも1つの引数がNULLである場合。

タイプ: UInt8またはNullable(UInt8)。

結果:

NULLを使用した場合:

結果:

not

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

構文

エイリアス: 否定演算子

引数

戻り値

  • 1valfalseに評価される場合、
  • 0valtrueに評価される場合、
  • NULLvalNULLである場合。

タイプ: UInt8またはNullable(UInt8)。

結果:

xor

2つ以上の値の論理排他的和を計算します。2つ以上の入力値がある場合、関数は最初の2つの値をxorし、その結果を3つ目の値とxorします。

構文

引数

  • val1, val2, ... — 少なくとも2つの値のリスト。IntUIntFloat、またはNullable

戻り値

  • 1、2つの値の場合: 1つの値がfalseに評価され、もう1つの値が評価されない場合、
  • 0、2つの値の場合: 両方の値がfalseに評価されるか、両方の値がtrueに評価される場合、
  • NULL、入力のいずれかがNULLである場合。

タイプ: UInt8またはNullable(UInt8)。

結果: