74
Глава 4. Фильтрация
В табл. 4.2 показаны возможные результаты вычисления этого блока
where
.
Таблица 4.2. Результаты вычисления выражений с тремя условиями,
разделенными операторами and и or
Как видите, чем больше условий в блоке
where
, тем больше комбина
ций должен рассмотреть сервер. В данном случае конечный результат
true
обеспечивают только три из восьми комбинаций.
Оператор not
Надеюсь, предыдущий пример с тремя условиями прост и понятен.
Но рассмотрим следующий вариант:
WHERE end_date IS NULL
AND
NOT
(title = 'Teller' OR start_date < '20030101')
Заметили отличие от предыдущего примера? После оператора
and
во
второй строке появился оператор
not
. Теперь, вместо поиска неуволен
ных сотрудников, или являющихся операционистами, или начавших
работать в банке до 2003 года, выбираются неуволенные сотрудники,
которые или не являются операционистами, или начали работу в бан
ке в 2003 и позже. В табл. 4.3 показаны возможные результаты выпол
нения этого примера.
Таблица 4.3. Результаты вычисления выражений с тремя условиями,
разделенными операторами and, or и not
Промежуточный результат
Конечный результат
WHERE true AND (true OR true)
True
WHERE true AND (true OR false)
True
WHERE true AND (false OR true)
True
WHERE true AND (false OR false)
False
WHERE false AND (true OR true)
False
WHERE false AND (true OR false)
False
WHERE false AND (false OR true)
False
WHERE false AND (false OR false)
False
Достарыңызбен бөлісу: