У меня есть запрос, который объединяет три таблицы и возвращает вычисление с псевдонимом в качестве конечного поля. Часто это значение равно null, когда в поле, к которому было присоединено, есть нуль. Соединение работает хорошо.Использование WHERE IS NULL возвращает все значения
Я хочу вернуть только записи, где я получаю Nulls в своем расчетном поле.
Но если добавить
WHERE field_name IS NULL
до конца я нет записей
Если добавить
WHERE field_name IS NOT NULL
я получаю весь набор, который я могу видеть несколько записей, как на самом деле null
Любое объяснение причин и того, как это исправить?
Редактировать: Я нашел решение для своего дела. Имя поля было псевдонимом для вычисления выше. Когда я дублировал вычисление в предложении where, вместо того, чтобы помещать псевдоним, он работал правильно.
Вы уверены, что они являются фактическими 'NULL' в отличие от строки '' NULL''? Возможно, вам придется больше показать запрос. –
Я думаю, нам было бы полезно увидеть соединение и выражение, которое вы вычисляете. – shawnt00
Ох. Просто мысль - вы что-то делаете в своем предложении SELECT по строкам 'a * b * field_value * c как field_value', т. Е. Создаете псевдоним, соответствующий существующему имени столбца? Потому что, если это так, имейте в виду, что 'WHERE' работает * перед *' SELECT', и поэтому он будет фильтровать * column *, а не вычисленное значение. –