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

Функции для работы с нулевыми значениями

isNull

Возвращает, является ли аргумент NULL.

См. также оператор IS NULL.

Синтаксис

Псевдоним: ISNULL.

Аргументы

  • x — Значение простого типа данных.

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

  • 1, если x равен NULL.
  • 0, если x не равен NULL.

Пример

Таблица:

Запрос:

Результат:

isNullable

Возвращает 1, если столбец является Nullable (т.е. позволяет значения NULL), 0 в противном случае.

Синтаксис

Аргументы

  • x — столбец.

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

  • 1, если x позволяет значения NULL. UInt8.
  • 0, если x не позволяет значения NULL. UInt8.

Пример

Запрос:

Результат:

isNotNull

Возвращает, является ли аргумент не NULL.

См. также оператор IS NOT NULL.

Аргументы:

  • x — Значение простого типа данных.

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

  • 1, если x не равен NULL.
  • 0, если x равен NULL.

Пример

Таблица:

Запрос:

Результат:

isNotDistinctFrom

Выполняет сравнение, безопасное для NULL. Используется для сравнения ключей JOIN, которые содержат значения NULL в части JOIN ON. Эта функция будет считать два значения NULL идентичными и вернет true, что отличается от обычного поведения равенства, где сравнение двух значений NULL возвращает NULL.

примечание

Эта функция является внутренней и используется реализацией JOIN ON. Пожалуйста, не используйте её вручную в запросах.

Синтаксис

Аргументы

  • x — первый ключ JOIN.
  • y — второй ключ JOIN.

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

  • true, когда x и y оба NULL.
  • false в противном случае.

Пример

Для полного примера см. NULL значения в ключах JOIN.

isZeroOrNull

Возвращает, является ли аргумент 0 (ноль) или NULL.

Аргументы:

  • x — Значение простого типа данных.

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

  • 1, если x равен 0 (ноль) или NULL.
  • 0 в противном случае.

Пример

Таблица:

Запрос:

Результат:

coalesce

Возвращает самый левый не-NULL аргумент.

Аргументы:

  • Произвольное количество параметров простого типа. Все параметры должны быть совместимых типов данных.

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

  • Первый не-NULL аргумент.
  • NULL, если все аргументы равны NULL.

Пример

Рассмотрим список контактов, которые могут содержать несколько способов связаться с клиентом.

Поля mail и phone имеют тип String, но поле telegram является UInt32, поэтому его необходимо преобразовать в String.

Получите первый доступный способ связи с клиентом из списка контактов:

ifNull

Возвращает альтернативное значение, если аргумент равен NULL.

Аргументы:

  • x — Значение для проверки на NULL.
  • alt — Значение, которое функция возвращает, если x равен NULL.

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

  • x, если x не равен NULL.
  • alt, если x равен NULL.

Пример

Запрос:

Результат:

Запрос:

Результат:

nullIf

Возвращает NULL, если оба аргумента равны.

Аргументы:

x, y — Значения для сравнения. Должны быть совместимых типов.

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

  • NULL, если аргументы равны.
  • x, если аргументы не равны.

Пример

Запрос:

Результат:

Запрос:

Результат:

assumeNotNull

Возвращает соответствующее значение не-Nullable для значения типа Nullable. Если исходное значение равно NULL, может быть возвращено произвольное значение. См. также функции ifNull и coalesce.

Аргументы:

  • x — Исходное значение.

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

  • Входное значение как тип не-Nullable, если оно не равно NULL.
  • Произвольное значение, если входное значение равно NULL.

Пример

Таблица:

Запрос:

Результат:

Запрос:

Результат:

toNullable

Преобразует тип аргумента в Nullable.

Аргументы:

  • x — Значение простого типа.

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

  • Входное значение, но типа Nullable.

Пример

Запрос:

Результат:

Запрос:

Результат: