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