Они не одинаковы!
<>SOME
означает: not = a
или not = b
или not = c
...
NOT IN
означает: not = a
и not = b
и not = c
...
Надеюсь, теперь это станет более понятным для вас.
Например:
SELECT CustomerID
FROM Sales.Customer
WHERE TerritoryID <> ANY
(SELECT TerritoryID
FROM Sales.SalesPerson);
Этот запрос возвращает каждый CustomerID , за исключением тех, для которых TerritoryID is NULL
.
Пока вы используете NOT IN
, запрос ничего не даст.