У меня есть длинный кусок PL/SQL, который работает хорошо, за исключением одной небольшой части предложения where.
Я ожидаю, что должна быть возвращена одна строка, но, поскольку поля, в которых проверяется предложение, имеют значение null, строка не возвращается, несмотря на соответствие критериям.
Я прочитал здесь очень хорошую заметку:
http://jonathanlewis.wordpress.com/2007/02/25/not-in/
Это объясняет, как Nulls влияют на операторы NOT IN, и я предполагаю, что то же самое и для NOT LIKE.
Чего я не смог найти, так это сопоставимой замены, которая мне нужна. Нужно ли мне каким-то образом переключить это на IN и LIKE или предоставить что-то, чтобы вернуть строку, если NUll?
Вот упрощенная версия моего кода.
SELECT * FROM Temp_Table T
WHERE -- Other where constraints
AND (T.Col_One NOT LIKE 'AString'
OR T.Col_Two NOT IN ('BString','CString'))
В моей ситуации строка будет иметь нули как в Col_One, так и в Col_Two.
Любая помощь приветствуется.
Спасибо.