ClickHouse/docs/ja/sql-reference/functions/logical-functions.md
2024-11-18 11:58:58 +09:00

5.7 KiB

slug sidebar_position sidebar_label
/ja/sql-reference/functions/logical-functions 110 論理

論理関数

以下の関数は任意の数値型の引数に対して論理演算を行います。それらは UInt8 または場合によっては NULL として 0 または 1 を返します。

引数としてのゼロは false とみなされ、ゼロ以外の値は true とみなされます。

and

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

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...)

別名: AND 演算子

引数

  • val1, val2, ... — 少なくとも二つの値のリスト。Int, UInt, Float または Nullable

返される値

  • 少なくとも一つの引数が false の場合は 0
  • 引数が全て false でなく少なくとも一つが NULL の場合は NULL
  • それ以外の場合は 1

型: UInt8 または Nullable(UInt8)。

SELECT and(0, 1, -2);

結果:

┌─and(0, 1, -2)─┐
│             0 │
└───────────────┘

NULL を含めた場合:

SELECT and(NULL, 1, 10, -2);

結果:

┌─and(NULL, 1, 10, -2)─┐
│                 ᴺᵁᴸᴸ │
└──────────────────────┘

or

二つ以上の値の論理和を計算します。

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...)

別名: OR 演算子

引数

  • val1, val2, ... — 少なくとも二つの値のリスト。Int, UInt, Float または Nullable

返される値

  • 少なくとも一つの引数が true の場合は 1
  • 引数が全て false の場合は 0
  • 引数が全て false で少なくとも一つが NULL の場合は NULL

型: UInt8 または Nullable(UInt8)。

SELECT or(1, 0, 0, 2, NULL);

結果:

┌─or(1, 0, 0, 2, NULL)─┐
│                    1 │
└──────────────────────┘

NULL を含めた場合:

SELECT or(0, NULL);

結果:

┌─or(0, NULL)─┐
│        ᴺᵁᴸᴸ │
└─────────────┘

not

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

構文

not(val);

別名: 否定演算子

引数

返される値

  • valfalse の場合は 1
  • valtrue の場合は 0
  • valNULL の場合は NULL

型: UInt8 または Nullable(UInt8)。

SELECT NOT(1);

結果:

┌─not(1)─┐
│      0 │
└────────┘

xor

二つ以上の値の排他的論理和を計算します。二つ以上の入力値については、まず最初の二つの値に対して xor を行い、次にその結果と三つ目の値について xor を行うというように進めます。

構文

xor(val1, val2...)

引数

  • val1, val2, ... — 少なくとも二つの値のリスト。Int, UInt, Float または Nullable

返される値

  • 二つの値について、一方が false で他方が true の場合は 1
  • 二つの値がどちらも false または true の場合は 0
  • 少なくとも一つの入力が NULL の場合は NULL

型: UInt8 または Nullable(UInt8)。

SELECT xor(0, 1, 1);

結果:

┌─xor(0, 1, 1)─┐
│            0 │
└──────────────┘