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