Ich war neulich eine gespeicherte Prozedur Debuggen und eine gewisse Logik etwas wie folgt gefunden:„<>“ vs „NOT IN“
SELECT something
FROM someTable
WHERE idcode <> (SELECT ids FROM tmpIdTable)
Das ist nichts zurückgegeben. Ich dachte, dass es mit der "<>" etwas seltsam aussah, also änderte ich es auf "NICHT IN" und dann hat alles gut funktioniert. Ich habe mich gefragt, warum das so ist? Dies ist ein ziemlich alter Prozess und ich bin mir nicht sicher, wie lange das Problem schon existiert, aber wir haben kürzlich von SQL Server 2005 auf SQL Server 2008 gewechselt, als dies entdeckt wurde. Was ist der wirkliche Unterschied zwischen "<>" und "NOT IN" und hat sich das Verhalten zwischen Server2005 und 2008 geändert?
'WO ID-Code NICHT IN (...)' ist äquivalent zu 'WHERE ID-Code <> ALL (...)' –