Перейти к основному содержимому
Перейти к основному содержимому

Логические функции

Ниже приведенные функции выполняют логические операции над аргументами произвольных числовых типов. Они возвращают либо 0, либо 1 как UInt8 или, в некоторых случаях, NULL.

Ноль как аргумент считается ложным, ненулевые значения считаются истинными.

and

Вычисляет логическое конъюнкцию двух или более значений.

Настройка short_circuit_function_evaluation управляет тем, используется ли оценка с коротким замыканием. Если включено, val_i оценивается только если (val_1 AND val_2 AND ... AND val_{i-1}) является истинным. Например, при оценке с коротким замыканием исключение деления на ноль не выбрасывается при выполнении запроса SELECT and(number = 2, intDiv(1, number)) FROM numbers(5).

Синтаксис

Псевдоним: Оператор AND.

Аргументы

  • val1, val2, ... — Список из как минимум двух значений. Int, UInt, Float или Nullable.

Возвращаемое значение

  • 0, если хотя бы один аргумент оценивается как ложный,
  • NULL, если ни один аргумент не оценивается как ложный и хотя бы один аргумент является NULL,
  • 1, в противном случае.

Тип: UInt8 или Nullable(UInt8).

Пример

Результат:

С NULL:

Результат:

or

Вычисляет логическую дисъюнкцию двух или более значений.

Настройка short_circuit_function_evaluation управляет тем, используется ли оценка с коротким замыканием. Если включено, val_i оценивается только если ((NOT val_1) AND (NOT val_2) AND ... AND (NOT val_{i-1})) является истинным. Например, при оценке с коротким замыканием исключение деления на ноль не выбрасывается при выполнении запроса SELECT or(number = 0, intDiv(1, number) != 0) FROM numbers(5).

Синтаксис

Псевдоним: Оператор OR.

Аргументы

  • val1, val2, ... — Список из как минимум двух значений. Int, UInt, Float или Nullable.

Возвращаемое значение

  • 1, если хотя бы один аргумент оценивается как истинный,
  • 0, если все аргументы оцениваются как ложные,
  • NULL, если все аргументы оцениваются как ложные и хотя бы один аргумент является NULL.

Тип: UInt8 или Nullable(UInt8).

Пример

Результат:

С NULL:

Результат:

not

Вычисляет логическую отрицание значения.

Синтаксис

Псевдоним: Оператор отрицания.

Аргументы

Возвращаемое значение

  • 1, если val оценивается как ложный,
  • 0, если val оценивается как истинный,
  • NULL, если val является NULL.

Тип: UInt8 или Nullable(UInt8).

Пример

Результат:

xor

Вычисляет логическую исключающую дисъюнкцию двух или более значений. Для более чем двух входных значений функция сначала вычисляет xor для первых двух значений, а затем вычисляет xor результата с третьим значением и т.д.

Синтаксис

Аргументы

  • val1, val2, ... — Список из как минимум двух значений. Int, UInt, Float или Nullable.

Возвращаемое значение

  • 1, для двух значений: если одно из значений оценивается как ложное, а другое — как истинное,
  • 0, для двух значений: если оба значения оцениваются как ложные или оба как истинные,
  • NULL, если хотя бы одно из входных значений NULL.

Тип: UInt8 или Nullable(UInt8).

Пример

Результат: