Функции для работы с Nullable значениями
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
Выполняет безопасное по отношению к нулю сравнение. Используется для сравнения ключей 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.
Пример
Запрос:
Результат:
Запрос:
Результат:
