Как правильно обрабатывать NULL-значения в запросах?
Показать ответ
Короткий ответ. В запросах NULL означает отсутствие значения, например на стороне левого соединения, где не нашлось соответствующей строки. Для проверки используют ЕСТЬ NULL, а для замены — ЕСТЬNULL(Выражение, ЗначениеЗамены).
// Замена отсутствующего остатка нулём в списке выбираемых полей:
ЕСТЬNULL(Остатки.КоличествоОстаток, 0) КАК Остаток
// Проверка отсутствия совпадения в условии:
Остатки.Номенклатура ЕСТЬ NULL
Сравнение Поле = NULL не является проверкой отсутствия значения. NULL, пустая ссылка, пустая строка и числовой ноль — разные значения. Заменять NULL нулём нужно только тогда, когда это соответствует смыслу данных: отсутствие цены, например, не обязательно означает бесплатный товар.