Логические функции
Следующие функции выполняют логические операции над аргументами произвольных числовых типов.
Они возвращают либо 0, либо 1 в виде UInt8, либо в некоторых случаях NULL.
Ноль в качестве аргумента считается false, ненулевые значения считаются true.
and
Введена в: v1.1.0
Вычисляет логическую конъюнкцию двух или более значений.
Настройка short_circuit_function_evaluation управляет тем, используется ли укороченное (short-circuit) вычисление.
Если она включена, val_i вычисляется только в том случае, если (val_1 AND val_2 AND ... AND val_{i-1}) равно true.
Например, при укороченном вычислении исключение деления на ноль не возникает при выполнении запроса SELECT and(number = 2, intDiv(1, number)) FROM numbers(5).
Ноль в качестве аргумента считается false, ненулевые значения считаются true.
Синтаксис
Аргументы
val1, val2[, ...]— список как минимум из двух значений.Nullable((U)Int*)илиNullable(Float*)
Возвращаемое значение
Возвращает:
0, если хотя бы один аргумент имеет значениеfalseNULL, если ни один аргумент не имеет значенияfalseи хотя бы один аргумент равенNULL1, в противном случаеNullable(UInt8)
Примеры
Базовое использование
С NULL-значением
not
Добавлена в: v1.1.0
Вычисляет логическое отрицание значения.
Ноль в качестве аргумента считается false, ненулевые значения считаются true.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает:
1, еслиvalинтерпретируется какfalse0, еслиvalинтерпретируется какtrueNULL, еслиvalимеет значениеNULL.Nullable(UInt8)
Примеры
Базовое использование
or
Введена в: v1.1.0
Вычисляет логическую дизъюнкцию двух или более значений.
Настройка short_circuit_function_evaluation управляет использованием укороченной оценки выражений (short-circuit 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).
Ноль в качестве аргумента рассматривается как false, ненулевые значения рассматриваются как true.
Синтаксис
Аргументы
val1, val2[, ...]— Список из как минимум двух значений.Nullable((U)Int*)илиNullable(Float*)
Возвращаемое значение
Возвращает:
1, если хотя бы один аргумент принимает значениеtrue0, если все аргументы принимают значениеfalseNULL, если все аргументы принимают значениеfalseи хотя бы один аргумент равенNULLNullable(UInt8)
Примеры
Базовое использование
С NULL-значениями
xor
Введена в версии: v1.1.0
Вычисляет логическое исключающее ИЛИ (xor) двух или более значений.
Если передано более двух входных значений, функция сначала выполняет xor над первыми двумя значениями, затем выполняет xor результата с третьим значением и т.д.
Ноль в качестве аргумента считается false, ненулевые значения считаются true.
Синтаксис
Аргументы
val1, val2[, ...]— Список как минимум двух значений.Nullable((U)Int*)илиNullable(Float*)
Возвращаемое значение
Возвращает:
1, для двух значений: если одно из значений имеет значениеfalse, а другое — нет0, для двух значений: если оба значения имеют значениеfalseили оба —trueNULL, если хотя бы одно из входных значений равноNULL.Nullable(UInt8)
Примеры
Базовое использование