На днях я отлаживал хранимую процедуру и нашел некоторую логику примерно так:
SELECT something
FROM someTable
WHERE idcode <> (SELECT ids FROM tmpIdTable)
Это ничего не вернуло. Я думал, что это немного странно с "< > ", поэтому я изменил его на "NOT IN", и тогда все сработало нормально. Мне было интересно, почему это так? Это довольно старый proc, и я не совсем уверен, как долго проблема была вокруг, но мы недавно переключились с SQL Server 2005 на SQL Server 2008, когда это было обнаружено. Какова реальная разница между "< > " и "NOT IN" и изменилось ли поведение между Server2005 и 2008?