Логические функции
Приведённые ниже функции выполняют логические операции над аргументами произвольных числовых типов.
Они возвращают либо 0, либо 1 как значение типа UInt8 или, в некоторых случаях, NULL.
Ноль в качестве аргумента считается false, ненулевые значения считаются true.
and
Введена в: v1.1
Вычисляет логическое И (конъюнкцию) двух и более значений.
Настройка 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).
Ноль в качестве аргумента считается false, ненулевые значения считаются true.
Синтаксис
Аргументы
val1, val2[, ...]— список не менее чем из двух значений.Nullable((U)Int*)илиNullable(Float*)
Возвращаемое значение
Возвращает:
0, если хотя бы один аргумент принимает значениеfalseNULL, если ни один аргумент не принимает значениеfalseи при этом хотя бы один аргумент равенNULL1— в остальных случаяхNullable(UInt8)
Примеры
Базовое использование
С NULL
not
Добавлено в версии: v1.1
Вычисляет логическое отрицание значения.
Ноль в качестве аргумента рассматривается как false, ненулевые значения — как true.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает:
1, еслиvalинтерпретируется какfalse0, еслиvalинтерпретируется какtrueNULL, еслиvalравноNULL.Nullable(UInt8)
Примеры
Базовое использование
or
Введено в: v1.1
Вычисляет логическую дизъюнкцию двух или более значений.
Настройка 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).
Ноль в качестве аргумента считается false, ненулевые значения считаются true.
Синтаксис
Аргументы
val1, val2[, ...]— список как минимум из двух значений.Nullable((U)Int*)илиNullable(Float*)
Возвращаемое значение
Возвращает:
1, если хотя бы один аргумент имеет значениеtrue0, если все аргументы имеют значениеfalseNULL, если все аргументы имеют значениеfalseи хотя бы один аргумент равенNULLNullable(UInt8)
Примеры
Базовое использование
С NULL-значением
xor
Добавлена в: v1.1
Вычисляет логическое исключающее «или» (исключающую дизъюнкцию) для двух или более значений.
При более чем двух входных значениях функция сначала применяет xor к первым двум значениям, затем — к результату и третьему значению и т.д.
Ноль в качестве аргумента интерпретируется как false, ненулевые значения — как true.
Синтаксис
Аргументы
val1, val2[, ...]— список из как минимум двух значений.Nullable((U)Int*)илиNullable(Float*)
Возвращаемое значение
Возвращает:
1для двух значений, если одно из значений интерпретируется какfalse, а другое — нет0для двух значений, если оба значения интерпретируются какfalseили оба какtrueNULL, если хотя бы один из аргументов имеет значениеNULL.Nullable(UInt8)
Примеры
Базовое использование