Логические функции
Ниже приведенные функции выполняют логические операции над аргументами произвольных числовых типов. Они возвращают либо 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.
Аргументы
Возвращаемое значение
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.
Аргументы
Возвращаемое значение
1
, если хотя бы один аргумент оценивается какистинный
,0
, если все аргументы оцениваются какложные
,NULL
, если все аргументы оцениваются какложные
и хотя бы один аргумент являетсяNULL
.
Тип: UInt8 или Nullable(UInt8).
Пример
Результат:
С NULL
:
Результат:
not
Вычисляет логическую отрицание значения.
Синтаксис
Псевдоним: Оператор отрицания.
Аргументы
Возвращаемое значение
1
, еслиval
оценивается какложный
,0
, еслиval
оценивается какистинный
,NULL
, еслиval
являетсяNULL
.
Тип: UInt8 или Nullable(UInt8).
Пример
Результат:
xor
Вычисляет логическую исключающую дисъюнкцию двух или более значений. Для более чем двух входных значений функция сначала вычисляет xor для первых двух значений, а затем вычисляет xor результата с третьим значением и т.д.
Синтаксис
Аргументы
Возвращаемое значение
1
, для двух значений: если одно из значений оценивается какложное
, а другое — какистинное
,0
, для двух значений: если оба значения оцениваются какложные
или оба какистинные
,NULL
, если хотя бы одно из входных значенийNULL
.
Тип: UInt8 или Nullable(UInt8).
Пример
Результат: