Функции для работы с Nullable-аргументами
isNull
Проверяет является ли аргумент NULL.
Синоним: ISNULL
.
Аргументы
x
— значение с не составным типом данных.
Возвращаемое значение
1
, еслиx
—NULL
.0
, еслиx
— неNULL
.
Пример
Входная таблица
Запрос
isNotNull
Проверяет не является ли аргумент NULL.
Аргументы
x
— значение с не составным типом данных.
Возвращаемое значение
0
, еслиx
—NULL
.1
, еслиx
— неNULL
.
Пример
Входная таблица
Запрос
coalesce
Последовательно слева-направо проверяет являются ли переданные аргументы NULL
и возвращает первый не NULL
.
Аргументы
- Произвольное количество параметров не составного типа. Все параметры должны быть совместимы по типу данных.
Возвращаемые значения
- Первый не
NULL
аргумент. NULL
, если все аргументы —NULL
.
Пример
Рассмотрим адресную книгу, в которой может быть указано несколько способов связи с клиентом.
Поля mail
и phone
имеют тип String, а поле icq
— UInt32
, его необходимо будет преобразовать в String
.
Получим из адресной книги первый доступный способ связаться с клиентом:
ifNull
Возвращает альтернативное значение, если основной аргумент — NULL
.
Аргументы
x
— значение для проверки наNULL
,alt
— значение, которое функция вернёт, еслиx
—NULL
.
Возвращаемые значения
- Значение
x
, еслиx
— неNULL
. - Значение
alt
, еслиx
—NULL
.
Пример
nullIf
Возвращает NULL
, если аргументы равны.
Аргументы
x
, y
— значения для сравнивания. Они должны быть совместимых типов, иначе ClickHouse сгенерирует исключение.
Возвращаемые значения
NULL
, если аргументы равны.- Значение
x
, если аргументы не равны.
Пример
assumeNotNull
Приводит значение типа Nullable к не Nullable
, если значение не NULL
.
Аргументы
x
— исходное значение.
Возвращаемые значения
- Исходное значение с не
Nullable
типом, если оно — неNULL
. - Неспецифицированный результат, зависящий от реализации, если исходное значение —
NULL
.
Пример
Рассмотрим таблицу t_null
.
Применим функцию assumeNotNull
к столбцу y
.
toNullable
Преобразует тип аргумента к Nullable
.
Аргументы
x
— значение произвольного не составного типа.
Возвращаемое значение
- Входное значение с типом не
Nullable
.
Пример