Логические функции
Логические функции производят логические операции над любыми числовыми типами, а возвращают число типа UInt8, равное 0, 1, а в некоторых случаях NULL.
Ноль в качестве аргумента считается ложью, а любое ненулевое значение — истиной.
and
Вычисляет результат логической конъюнкции между двумя и более значениями. Соответствует оператору логического "И".
Синтаксис
Чтобы вычислять функцию and по короткой схеме, используйте настройку short_circuit_function_evaluation. Если настройка включена, то выражение vali вычисляется только для строк, где условие (val1 AND val2 AND ... AND val{i-1}) верно. Например, при выполнении запроса SELECT and(number = 2, intDiv(1, number)) FROM numbers(10) не будет сгенерировано исключение из-за деления на ноль.
Аргументы
Возвращаемое значение
0, если среди аргументов есть хотя бы один нуль.NULL, если среди аргументов нет нулей, но есть хотя бы одинNULL.1, в остальных случаях.
Тип: UInt8 или Nullable(UInt8).
Пример
Запрос:
Результат:
Со значениями NULL:
Результат:
or
Вычисляет результат логической дизъюнкции между двумя и более значениями. Соответствует оператору логического "ИЛИ".
Синтаксис
Чтобы вычислять функцию or по короткой схеме, используйте настройку short_circuit_function_evaluation. Если настройка включена, то выражение vali вычисляется только для строк, где условие ((NOT val1) AND (NOT val2) AND ... AND (NOT val{i-1})) верно. Например, при выполнении запроса SELECT or(number = 0, intDiv(1, number) != 0) FROM numbers(10) не будет сгенерировано исключение из-за деления на ноль.
Аргументы
Returned value
1, если среди аргументов есть хотя бы одно ненулевое число.0, если среди аргументов только нули.NULL, если среди аргументов нет ненулевых значений, и естьNULL.
Тип: UInt8 или Nullable(UInt8).
Пример
Запрос:
Результат:
Со значениями NULL:
Результат:
not
Вычисляет результат логического отрицания аргумента. Соответствует оператору логического отрицания.
Синтаксис
Аргументы
Возвращаемое значение
1, еслиval— это0.0, еслиval— это ненулевое число.NULL, еслиval— этоNULL.
Тип: UInt8 или Nullable(UInt8).
Пример
Запрос:
Результат:
xor
Вычисляет результат логической исключающей дизъюнкции между двумя и более значениями. При более чем двух значениях функция работает так: сначала вычисляет XOR для первых двух значений, а потом использует полученный результат при вычислении XOR со следующим значением и так далее.
Синтаксис
Аргументы
Returned value
1, для двух значений: если одно из значений является нулем, а второе нет.0, для двух значений: если оба значения одновременно нули или ненулевые числа.NULL, если среди аргументов хотя бы одинNULL.
Тип: UInt8 or Nullable(UInt8).
Пример
Запрос:
Результат: