ClickHouse/docs/en/sql-reference/functions/logical-functions.md
2021-07-29 18:20:55 +03:00

4.9 KiB

toc_priority toc_title
37 Logical

Logical Functions

Performs logical operations on arguments of any numeric types, but returns a UInt8 number equal to 0, 1 or NULL in some cases.

Zero as an argument is considered false, while any non-zero value is considered true.

and

Calculates the result of the logical conjunction between two or more values. Corresponds to Logical AND Operator.

Syntax

and(val1, val2...)

Arguments

Returned value

  • 0, if there is at least one zero value argument.
  • NULL, if there are no zero values arguments and there is at least one NULL argument.
  • 1, otherwise.

Type: UInt8 or Nullable(UInt8).

Example

Query:

SELECT and(0, 1, -2);

Result:

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

With NULL:

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

Result:

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

or

Calculates the result of the logical disjunction between two or more values. Corresponds to Logical OR Operator.

Syntax

and(val1, val2...)

Arguments

Returned value

  • 1, if there is at least one non-zero value.
  • 0, if there are only zero values.
  • NULL, if there are only zero values and NULL.

Type: UInt8 or Nullable(UInt8).

Example

Query:

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

Result:

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

With NULL:

SELECT or(0, NULL);

Result:

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

not

Calculates the result of the logical negation of the value. Corresponds to Logical Negation Operator.

Syntax

not(val);

Arguments

Returned value

  • 1, if the val is 0.
  • 0, if the val is a non-zero value.
  • NULL, if the val is a NULL value.

Type: UInt8 or Nullable(UInt8).

Example

Query:

SELECT NOT(1);

Result:

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

xor

Calculates the result of the logical exclusive disjunction between two or more values. For more than two values the function works as if it calculates XOR of the first two values and then uses the result with the next value to calculate XOR and so on.

Syntax

xor(val1, val2...)

Arguments

Returned value

  • 1, for two values: if one of the values is zero and other is not.
  • 0, for two values: if both values are zero or non-zero at the same time.
  • NULL, if there is at least one NULL value.

Type: UInt8 or Nullable(UInt8).

Example

Query:

SELECT xor(0, 1, 1);

Result:

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