Разница между «<> некоторыми» и «не в» - PullRequest
0 голосов
/ 06 сентября 2018

Я читал основы книг по системам баз данных, и в теме вложенных подзапросов (сравнение множеств) было написано, что some и in идентичны, тогда как <>some и not in - нет.По моему мнению, <>some означает «по крайней мере, один», а not in означает «не в наборе» ... поэтому я думаю, что они должны означать то же самое.

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Они не одинаковы!

<>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, запрос ничего не даст.

0 голосов
/ 06 сентября 2018

<> применяется только к 1 значению, в то время как «not in» применяется к 1 или более значениям, например,

1. WHERE id <> '123'
2. WHERE id NOT IN ('123') --same as case 1
3. WHERE id NOT IN ('123', '456')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...