Логические функции
Логические функции производят логические операции над любыми числовыми типами, а возвращают число типа 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).
Пример
Запрос:
Результат: