Функции для работы с нулевыми значениями
isNull
Возвращает, является ли аргумент NULL.
См. также оператор IS NULL.
Синтаксис
Псевдоним: ISNULL.
Аргументы
x— Значение простого типа данных.
Возвращаемое значение
1, еслиxравенNULL.0, еслиxне равенNULL.
Пример
Таблица:
Запрос:
Результат:
isNullable
Возвращает 1, если столбец является Nullable (т.е. позволяет значения NULL), 0 в противном случае.
Синтаксис
Аргументы
x— столбец.
Возвращаемое значение
Пример
Запрос:
Результат:
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.
Пример
Запрос:
Результат:
Запрос:
Результат: