Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Решение, что является истинным

Решение, что является истинным

На рис. 21.1 показаны возможные результаты вычисления двух предикатов из предыдущего примера.

В нашем примере вначале проверяется (HIRE_DATE > CORRENT_DATE - 366), потому что это самый левый предикат. Если бы у него были вложенные предикаты, то сначала проверялись бы они. Ни для одного из предикатов нет проверки на NULL, но мы включили сюда тот случай, когда встречается пустое ("неизвестное") значение в проверяемых данных, что приведет к результату "ложь", поскольку проверка не может вернуть истину. Должна быть доказана истинность предикатов, чтобы они считались истинными.

Если NULL встречается в HIRE DATE, то проверка немедленно прекращается и возвращает ложь[72]. Связка AND означает: два предиката, соединенные операцией AND, не могут давать результат истина, если один из них является ложным, следовательно, нет необходимости выполнять проверку второго предиката.

Если проверяемые данные не являются NULL, ТО следующей является проверка, верно ли, что значение больше указанной константы. Если нет, проверка прекращается. Другими словами, NULL и ложь имеют один и тот же эффект, поскольку оба не являются истиной.


Рис. 21.1. Вычисление истинности

Если первый предикат истинный, похожий процесс вычисления выполняется для второго предиката. Только когда будет выполнено все это, процесс вычисления утверждения завершается.

Оглавление книги


Генерация: 2.350. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз