Разница между предикатами IN и NOT IN при выполнении запросов заключается в том, что первый проверяет вхождение значения в набор данных, а второй — его отсутствие. 1
Предикат IN позволяет ответить на вопрос, входит ли значение в заданный набор данных. 1 Если целевой объект эквивалентен хотя бы одному из указанных в предложении IN значений, истинностное значение предиката IN будет равно TRUE. 5 Если для каждого значения Х в предложении IN целевой объект <> X, истинностное значение будет равно FALSE. 5
Предикат NOT IN выполняет функцию, противоположную выражению IN: убеждается, что значение не входит в указанный набор данных. 1 При использовании NOT IN проверяемое значение будет поочерёдно сравнено с каждым из значений, перечисленных в скобках после NOT IN, и если хотя бы одно сравнение не будет истинным, то всё условие будет считаться ложным. 1
Таким образом, с помощью IN можно найти значения, которые входят в набор, а с помощью NOT IN — значения, которые в него не входят.