Логические функции
Функции ниже выполняют логические операции над аргументами произвольных числовых типов. Они возвращают либо 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})
истинно.
Например, с оценкой с коротким замыканием исключение деления на ноль не возникает при выполнении запроса SELECT and(number = 2, intDiv(1, number)) FROM numbers(5)
. Ноль как аргумент воспринимается как false
, ненулевые значения считаются true
.
Синтаксис
Аргументы
val1, val2[, ...]
— Список из как минимум двух значений.Nullable((U)Int*)
илиNullable(Float*)
Возвращаемое значение
Возвращает:
0
, если хотя бы один аргумент оценивается какfalse
NULL
, если ни один аргумент не оценивается какfalse
и хотя бы один аргумент являетсяNULL
1
, в остальных случаяхNullable(UInt8)
Примеры
Базовое использование
С NULL
not
Введено в: v1.1
Вычесляет логическое отрицание значения. Ноль как аргумент воспринимается как false
, ненулевые значения считаются true
.
Синтаксис
Аргументы
Возвращаемое значение
Возвращает:
1
, еслиval
оценивается какfalse
0
, еслиval
оценивается какtrue
NULL
, если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}))
истинно.
Например, с оценкой с коротким замыканием исключение деления на ноль не возникает при выполнении запроса SELECT or(number = 0, intDiv(1, number) != 0) FROM numbers(5)
. Ноль как аргумент воспринимается как false
, ненулевые значения считаются true
.
Синтаксис
Аргументы
val1, val2[, ...]
— Список из как минимум двух значений.Nullable((U)Int*)
илиNullable(Float*)
Возвращаемое значение
Возвращает:
1
, если хотя бы один аргумент оценивается какtrue
0
, если все аргументы оцениваются какfalse
NULL
, если все аргументы оцениваются какfalse
и хотя бы один аргумент являетсяNULL
Nullable(UInt8)
Примеры
Базовое использование
С NULL
xor
Введено в: v1.1
Вычесляет логическую исключающую дизъюнкцию двух или более значений. Для более чем двух входных значений функция сначала вычисляет xor первых двух значений, затем xor-ит результат с третьим значением и т.д. Ноль как аргумент воспринимается как false
, ненулевые значения считаются true
.
Синтаксис
Аргументы
val1, val2[, ...]
— Список из как минимум двух значений.Nullable((U)Int*)
илиNullable(Float*)
Возвращаемое значение
Возвращает:
1
, для двух значений: если одно из значений оценивается какfalse
, а другое — нет0
, для двух значений: если оба значения оцениваются какfalse
или оба какtrue
NULL
, если хотя бы одно из входных значений равноNULL
.Nullable(UInt8)
Примеры
Базовое использование