сравнивает каждую пару, состоящую из даты заказа (date) и номера товара (customer_id), со списком пар, и если оба компонента в паре совпадают с соответствующими компонентами какой-либо пары из списка, то строка таблицы Orders (Заказы) будет включена в результат запроса. Таким образом, запрос отбирает заказы товаров № 1 и № 2, сделанные 12 и 13 декабря 2007 г. (табл. 3.13). Таблица 3.13. Результат выполнения запроса

В отличие от функций LEAST, GREATEST, INTERVAL и COALESCE, списком значений для оператора IN может быть не только фиксированный перечень аргументов, но и результат подзапроса (соответствующий пример мы рассматривали в подразделе «Вложенные запросы» главы 2).

Следующий оператор проверяет отсутствие первого операнда в списке значений, который является вторым операндом.

Оператор x NOT IN (<Список значений>)

Оператор «не содержится в списке» возвращает результат, противоположный результату оператора IN:

• 1 (TRUE), если х не совпадает ни с одним из элементов списка;

• 0 (FALSE) – если х совпадает с одним из элементов списка;

• NULL, если х равен NULL, а также в тех случаях, когда в списке присутствует значение NULL и при этом х не совпадает ни с одним из элементов списка.

Например, запрос

SELECT * FROM Customers WHERE rating NOT IN (500,1500);

возвращает результат, представленный в табл. 3.11.

Этот оператор, как и оператор IN, может работать с составными значениями, а также со списком, полученным в результате подзапроса.

Следующий оператор проверяет соответствие первого операнда шаблону, который является вторым операндом.

Оператор x LIKE y

Оператор сравнения с шаблоном возвращает следующие значения:

• 1 (TRUE) – если х соответствует шаблону у;

• 0 (FALSE) – если х не соответствует шаблону у;

• NULL – если х или у равен NULL.

В шаблоне можно использовать два специальных подстановочных символа:

• % – на месте знака процента может быть любое количество произвольных символов операнда х;

• _ – на месте знака подчеркивания может быть ровно один произвольный символ операнда х.

Например, следующий запрос выводит данные о тех клиентах, чьи имена содержат кавычки:

SELECT * FROM Customers WHERE name LIKE \'%\'\'%\'\'%\

Перейти на страницу:

Похожие книги