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