Нулл-значение (Null-value)

Синонимы: NULL

В базах данных на основе SQL, NULL — это специальная метка (псевдозначение), используемая для индикации пустой ячейки. Применение такой метки позволяет различать ячейки, в которых значения присутствуют, но не отображаются, от тех, в которых значения отсутствуют. NULL не равен FALSE, нулю или пустой строке.

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

В настоящее время NULL применяется не только в реляционных базах данных, но и в языках программирования и аналитических системах как указание на неопределенный результат вычисления или индикатор пустой ячейки.

При сравнении NULL с любым значением результатом будет NULL, т.е. условие «значение = NULL» всегда будет ложным. При выполнении математических операций с ним результатом также будет псевдозначение. Например, «NULL + 5» даст NULL.

Агрегирование полей таблицы, которые содержат NULL, может привести к неожиданным результатам. Пустое значение будет проигнорировано или включено в результат в зависимости от варианта агрегации и особенностей реализации базы данных. Обычно при фильтрации, подсчете суммы или среднего по полю ячейки с NULL игнорируются. Кроме этого он может привести к неинтуитивным результатам сортировки значений в столбце.

В большинстве систем обработки данных имеется функция IsNull или ее аналог. Функция проверяет, является ли выражение пустым. Ее применение позволяет избежать неопределенности и обеспечить корректные результаты.

Непонимание того, как работать c NULL, является причиной большого количества ошибок в анализе данных. Проблемы возникают потому, что аналитики путают пустое значение с нулем или пустой строкой (""). Классической ошибкой является попытка использовать для поиска пустых ячеек выражение типа Value = Null вместо функции IsNull.