============ ОПЕРАТОР IN ===============

Оператор IN определяет набор значений в которое данное значение может или не может быть включено.Если вы хотите найти всех продавцов, которые размещены в Barcelona или в London, вы должны использовать следующий запрос ( вывод показывается в Рисунке 5.1 ):
SELECT * FROM Salespeople WHERE city = 'Barcelona' OR city = 'London';
Имеется и более простой способ получить ту же информацию:
SELECT * FROM Salespeople WHERE city IN ( 'Barcelona', 'London' );
Вывод для этого запроса показывается в Рисунке 5.2. Как вы можете видеть, IN определяет набор значений с помощью имен членов набора заключеных в круглые скобки и отделенных запятыми. Он затем проверяет различные значения указанного поля пытаясь найти совпадение со значениями из набора. Если это случается, то предикат верен. Когда наборсодержит значения номеров а не символов, одиночные кавычки опускаются. Давайте найдем всех заказчиков относящихся к продав- цам имеющих значения snum = 1001, 1007, и 1004. Вывод для следующего запроса показан на Рисунке 5.3:
SELECT * FROM Customers WHERE cnum IN (1001, 1007, 1004 );
SELECT * FROM Salespeople WHERE city = 'Barcelona' OR city = 'London';

snum sname city comm
1001 Peel London 0.12
1004 Motika London 0.11
1007 Rifkin Barcelona 0.15


Рисунок 5.1 Нахождение продавцов в Барселоне и Лондоне

SELECT * FROM Salespeople WHERE city IN ('Barcelona','London');

snum sname city comm
1001 Peel London 0.12
1004 Motika London 0.11
1007 Rifkin Barcelona 0.15


Рисунок 5.2 SELECT использует IN

SELECT * FROM Customers WHERE snum IN ( 1001, 1007, 1004 );

snum cname city rating snum
2001 Hoffman London 100 1001
2006 Clemens London 100 1001
2008 Cisneros San Jose 300 1007
2007 Pereira Rome 100 1004


Рисунок 5.3: SELECT использует IN с номерами