Skip to main content
Позволяет хранить специальный маркер (NULL), обозначающий “отсутствующее значение”, наряду с обычными значениями, допустимыми для T. Например, столбец типа Nullable(Int8) может хранить значения типа Int8, а в строках, где значение отсутствует, будет храниться NULL. T не может быть ни одним из следующих составных типов данных: Однако составные типы данных могут содержать значения типа Nullable, например Array(Nullable(Int8)) или Tuple(Nullable(String), Nullable(Int64)). Поле типа Nullable нельзя включать в индексы таблицы. NULL — значение по умолчанию для любого типа Nullable, если иное не указано в конфигурации сервера ClickHouse.

Особенности хранилища

Чтобы хранить значения типа Nullable в столбце таблицы, ClickHouse помимо обычного файла со значениями использует отдельный файл с масками NULL. Записи в файле масок позволяют ClickHouse различать NULL и значение по умолчанию соответствующего типа данных для каждой строки таблицы. Из-за дополнительного файла столбец Nullable занимает больше места в хранилище по сравнению с аналогичным обычным столбцом.
Использование Nullable почти всегда отрицательно сказывается на производительности, учитывайте это при проектировании баз данных.

Поиск NULL

Найти значения NULL в столбце можно с помощью подстолбца null, не считывая весь столбец целиком. Он возвращает сохранённый байт маски NULL: 0, если соответствующее значение присутствует, и ненулевой байт, канонически 1, если значение равно NULL. Используйте isNull, если требуется строго 0 или 1. Пример
Query
Response

Пример использования

Последнее изменение 26 сентября 2026 г.