Функции сравнения

Перечисленные ниже функции сравнения возвращают значения 0 или 1 типа UInt8.

Типы данных, которые могут быть сравнены:

  • числа и десятичные числа;

  • строки и фиксированные строки;

  • даты;

  • даты со временем;

  • кортежи (лексикографическое сравнение);

  • массивы (лексикографическое сравнение).

Сравнивать можно только значения в рамках одной группы (например, UInt16 и UInt64), но не между группами (например, UInt16 и DateTime).

Строка S1, которая содержит другую строку S2 в качестве префикса, считается длиннее, чем S2.

Строки сравниваются по байтам. Если одна из строк содержит символы в кодировке UTF-8, занимающие несколько байт, это может привести к неожиданным результатам.

Набор поддерживаемых функций RQL и их поведение зависят от версии установленного ClickHouse. Если функция не поддерживается в используемой версии ClickHouse, она также не будет доступна в RQL.

Ознакомиться с актуальным списком функций и их поведением можно в официальной документации ClickHouse.

Обратите внимание, что для функций в официальной документации ClickHouse может быть указана версия, в которой эти функции были введены. Это позволит определить, доступна ли рассматриваемая функция в вашей версии ClickHouse.

Функции сравнения
Функция Описание

equals(a, b)

Проверяет значения a и b на равенство. Возвращает 1, если a равно b, иначе — 0. Аналог оператора =: a = b.

globalIn(x, set)

Аналогична in(x, set), но использует глобальное распределение set в распределенных запросах. Множество set отправляется на все удаленные серверы. Функция возвращает 1, если x принадлежит множеству set, иначе 0. Значения NULL в x пропускаются (считаются отсутствующими в множестве).

globalNotIn(x, set)

Аналогична notIn(x, set), но использует глобальное распределение set в распределенных запросах. Множество set отправляется на все удаленные серверы. Функция возвращает 1, если x отсутствует в set, иначе 0. Значения NULL в x пропускаются (считаются отсутствующими в множестве).

globalNotNullIn(x, set)

Аналогична notNullIn(x, set), но использует глобальное распределение set в распределенных запросах. Множество set отправляется на все удаленные серверы. Функция возвращает 1, если x отсутствует в set, иначе 0. Значения NULL в x не пропускаются: NULL сравнивается с элементами множества, и выражение NULL = NULL считается истинным.

globalNullIn(x, set)

Аналогична nullIn(x, set), но использует глобальное распределение set в распределенных запросах. Множество set отправляется на все удаленные серверы. Функция возвращает 1, если x принадлежит множеству set, иначе 0. Значения NULL в x не пропускаются: NULL сравнивается с элементами множества, и выражение NULL = NULL считается истинным.

greater(a, b)

Проверяет, больше ли значение a значения b. Возвращает 1, если a больше b, иначе — 0. Аналог оператора >: a > b.

greaterOrEquals(a, b)

Проверяет, больше или равно ли значение a значению b. Возвращает 1, если a больше или равно b, иначе — 0. Аналог оператора >=: a >= b.

in(x, set)

Проверяет, принадлежит ли значение x множеству set. Возвращает 1, если x содержится в set, иначе — 0. Значения NULL в x пропускаются (считаются отсутствующими в множестве).

isNotDistinctFrom(x, y)

Выполняет NULL-безопасное сравнение двух значений x и y на равенство. Возвращает 1, если x равно y, включая случай, когда оба значения равны NULL. Возвращает 0, если значения различаются или если ровно одно из них равно NULL. Значения для сравнения могут быть любого типа данных.

less(a, b)

Проверяет, меньше ли значение a значения b. Возвращает 1, если a меньше b, иначе — 0. Аналог оператора <: a < b.

lessOrEquals(a, b)

Проверяет, меньше или равно ли значение a значению b. Возвращает 1, если a меньше или равно b, иначе — 0. Аналог оператора <=: a +⇐+ b.

notEquals(a, b)

Проверяет значения a и b на неравенство. Возвращает 1, если a не равно b, иначе — 0. Аналог операторов != и <>: a != b, a <> b.

notIn(x, set)

Проверяет, что значение x не принадлежит множеству set. Возвращает 1, если x отсутствует в set, иначе — 0. Значения NULL в x пропускаются.

notNullIn(x, set)

Проверяет, что значение x не принадлежит множеству set. В отличие от notIn(x, set), значения NULL в x не пропускаются. NULL сравнивается с элементами множества, и выражение NULL = NULL считается истинным. Возвращает 1, если x отсутствует в set, иначе — 0.

nullIn(x, set)

Проверяет, принадлежит ли значение x множеству set. В отличие от in(x, set), значения NULL в x не пропускаются. NULL сравнивается с элементами множества, и выражение NULL = NULL считается истинным. Возвращает 1, если x содержится в set, иначе — 0.

Была ли полезна эта страница?

Обратная связь