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