Перейти к основному содержимому
Перейти к основному содержимому

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

Правила сравнения

Функции сравнения ниже возвращают 0 или 1 с типом UInt8. Сравнивать можно только значения в рамках одной группы (например, UInt16 и UInt64), но не между группами (например, UInt16 и DateTime). Сравнение чисел и строк возможно, также возможно сравнение строк с датами и дат с временами. Для кортежей и массивов сравнение происходит лексикографически, что означает, что сравнение происходит для каждого соответствующего элемента кортежа/массива с левой и правой стороны.

Следующие типы могут быть сравнены:

  • числа и десятичные дроби
  • строки и фиксированные строки
  • даты
  • даты с временами
  • кортежи (лексикографическое сравнение)
  • массивы (лексикографическое сравнение)
примечание

Строки сравниваются байт за байтом. Это может привести к неожиданным результатам, если одна из строк содержит символы UTF-8, закодированные в несколько байт. Строка S1, которая имеет другую строку S2 в качестве префикса, считается более длинной, чем S2.

equals

Введено в: v1.1

Сравнивает два значения на равенство.

Синтаксис

equals(a, b)
        -- a = b
        -- a == b

Аргументы

  • a — Первое значение.* - b — Второе значение.*

Возвращаемое значение

Возвращает 1, если a равно b, в противном случае 0 UInt8

Примеры

Пример использования

SELECT 1 = 1, 1 = 2;
┌─equals(1, 1)─┬─equals(1, 2)─┐
│            1 │            0 │
└──────────────┴──────────────┘

greater

Введено в: v1.1

Сравнивает два значения на отношение "больше чем".

Синтаксис

greater(a, b)
    -- a > b

Аргументы

  • a — Первое значение.* - b — Второе значение.*

Возвращаемое значение

Возвращает 1, если a больше чем b, в противном случае 0 UInt8

Примеры

Пример использования

SELECT 2 > 1, 1 > 2;
┌─greater(2, 1)─┬─greater(1, 2)─┐
│             1 │             0 │
└───────────────┴───────────────┘

greaterOrEquals

Введено в: v1.1

Сравнивает два значения на отношение "больше или равно".

Синтаксис

greaterOrEquals(a, b)
    -- a >= b

Аргументы

  • a — Первое значение.* - b — Второе значение.*

Возвращаемое значение

Возвращает 1, если a больше или равно b, в противном случае 0 UInt8

Примеры

Пример использования

SELECT 2 >= 1, 2 >= 2, 1 >= 2;
┌─greaterOrEquals(2, 1)─┬─greaterOrEquals(2, 2)─┬─greaterOrEquals(1, 2)─┐
│                     1 │                     1 │                     0 │
└───────────────────────┴───────────────────────┴───────────────────────┘

less

Введено в: v1.1

Сравнивает два значения на отношение "меньше чем".

Синтаксис

less(a, b)
    -- a < b

Аргументы

  • a — Первое значение.* - b — Второе значение.*

Возвращаемое значение

Возвращает 1, если a меньше чем b, в противном случае 0 UInt8

Примеры

Пример использования

SELECT 1 < 2, 2 < 1;
┌─less(1, 2)─┬─less(2, 1)─┐
│          1 │          0 │
└────────────┴────────────┘

lessOrEquals

Введено в: v1.1

Сравнивает два значения на отношение "меньше или равно".

Синтаксис

lessOrEquals(a, b)
-- a <= b

Аргументы

  • a — Первое значение.* - b — Второе значение.*

Возвращаемое значение

Возвращает 1, если a меньше или равно b, в противном случае 0 UInt8

Примеры

Пример использования

SELECT 1 <= 2, 2 <= 2, 3 <= 2;
┌─lessOrEquals(1, 2)─┬─lessOrEquals(2, 2)─┬─lessOrEquals(3, 2)─┐
│                  1 │                  1 │                  0 │
└────────────────────┴────────────────────┴────────────────────┘

notEquals

Введено в: v1.1

Сравнивает два значения на неравенство.

Синтаксис

notEquals(a, b)
    -- a != b
    -- a <> b

Аргументы

  • a — Первое значение.* - b — Второе значение.*

Возвращаемое значение

Возвращает 1, если a не равно b, в противном случае 0. UInt8

Примеры

Пример использования

SELECT 1 != 2, 1 != 1;
┌─notEquals(1, 2)─┬─notEquals(1, 1)─┐
│               1 │               0 │
└─────────────────┴─────────────────┘