Гольцман Виктор
Шрифт:
возвращает результат, представленный в табл. 3.8. Таблица 3.8. Результат выполнения запроса
SELECT 100 IS NOT NULL, 0 IS NOT NULL,
\'2007-12-12\' IS NOT NULL, \'0000-00-00\' IS NOT NULL,
NULL IS NOT NULL;возвращает результат, представленный в табл. 3.9. Таблица 3.9. Результат выполнения запроса
Как вы видите, операторы х IS NOT у и х IS у возвращают противоположные результаты.
Следующий оператор проверяет, меньше ли первый операнд, чем второй.
Оператор x < yОператор «меньше» возвращает следующие значения:
• 1 (TRUE) – если х меньше у;
• 0 (FALSE) – если х равен у или х больше у;
• NULL – если по крайней мере один из операндов равен NULL.
Например, запросSELECT * FROM Customers WHERE name<\'КРЫЛОВ\
возвращает пустой результат, поскольку «Крылов» – наименьшее в алфавитном порядке значение в столбце name (имя) таблицы Customers (Клиенты). Предшествующих ему значений в столбце нет, и, следовательно, ни одна строка не удовлетворяет условию отбора.
Следующий оператор проверяет, не превосходит ли первый операнд второго.
Оператор x < = yОператор «меньше либо равно» возвращает следующие значения:
• 1 (TRUE) – если х равно y или х меньше у;
• 0 (FALSE) – если х больше у;
• NULL – если по крайней мере один из операндов равен NULL.
Например, запросSELECT * FROM Customers WHERE name< = \'КРЫЛОВ\
возвращает результат, представленный в табл. 3.1.
Следующий оператор проверяет, больше ли первый операнд, чем второй.
Оператор x > yОператор «больше» возвращает следующие значения:
• 1 (TRUE) – если х больше у;
• 0 (FALSE) – если х равно у или х меньше у;
• NULL – если по крайней мере один из операндов равен NULL.
Например, запросSELECT * FROM Customers WHERE name>\'КРЫЛОВ\
возвращает результат, представленный в табл. 3.6.
Следующий оператор проверяет, является ли первый операнд большим либо равным по отношению ко второму.
Оператор x > = yОператор «больше либо равно» возвращает следующие значения:
• 1 (TRUE) – если х равно у или х больше у;
• 0 (FALSE) – если х меньше у;
• NULL – если по крайней мере один из операндов равен NULL.
Например, запросSELECT * FROM Customers WHERE name> = \'КРЫЛОВ\
возвращает все строки таблицы Customers (Клиенты) (табл. 3.10). Таблица 3.10. Результат выполнения запроса
Следующий оператор проверяет, находится ли первый операнд в промежутке между вторым и третьим.
Оператор x BETWEEN a AND bОператор «между» возвращает следующие значения:
• 1 (TRUE) – если a < х < b;
• 0 (FALSE) – если х меньше a или больше b;
• NULL – в остальных случаях.
Например, запросSELECT * FROM Customers WHERE name BETWEEN \'КРЫЛОВ\' AND \'OOO «Кускус»\
возвращает следующие строки таблицы Customers (Клиенты) (табл. 3.11). Таблица 3.11. Результат выполнения запроса
Следующий оператор проверяет, находится ли первый операнд за пределами промежутка между вторым и третьим операндом.
Оператор x NOT BETWEEN a AND bОператор возвращает результат, противоположный результату оператора «между»:
• 1 (TRUE) – если х меньше a или больше b;
• 0 (FALSE) – если a < х < b:
• NULL – в остальных случаях.
Например, запросSELECT * FROM Customers WHERE name NOT BETWEEN \'КРЫЛОВ\' AND \'ООО «Кускус»;
возвращает следующие строки таблицы Customers (Клиенты) (табл. 3.12). Таблица 3.12. Результат выполнения запроса
Следующий оператор проверяет наличие первого операнда в списке значений, который является вторым операндом.
Оператор x IN (<Список значений>)Оператор «содержится в списке» возвращает следующие значения:
• 1 (TRUE) – если х совпадает с одним из элементов списка;
• 0 (FALSE) – если х не совпадает ни с одним из элементов списка;
• NULL – если х равен NULL, а также в тех случаях, когда в списке присутствует значение NULL и при этом х не совпадает ни с одним из элементов списка.
Например, запросSELECT * FROM Customers WHERE rating IN (500,1500,2500);
возвращает результат, представленный в табл. 3.12.
Оператор IN позволяет также сравнивать составные значения, то есть значение х и элементы списка могут представлять собой наборы из нескольких величин (количество компонентов во всех наборах должно быть одинаковым).
Например, запросSELECT * FROM Orders WHERE (date,product_id) IN
((\'2007-12-12\',1),(\'2007-12-12\',2),
(\'2007-12-13\',1),(\'2007-12-13\',2));