Результат действия трехзначных условных операторов
Условные операторы при отсутствии пустых значений возвращают либо TRUE (истина), либо FALSE (ложь). Если же в столбце присутствуют пустые значения, то может быть возвращено и третье значение: UNKNOWN (неизвестно). В этой схеме, например, условие WHERE А = 2, где А — имя столбца, значения которого могут быть неизвестны, при А = 2 будет соответствовать TRUE, при А = 4 в результате будет получено значение FALSE, а при отсутствующем значении А (NULL-значение) результат будет UNKNOWN. Пустые значения оказывают влияние на использование логических операторов NOT, AND и OR.
Оператор NOT
Обычный унарный оператор NOT обращает оценку TRUE в FALSE и наоборот. Однако NOT NULL по прежнему будет возвращать пустое значение NULL. При этом следует отличать случай NOT NULL от условия IS NOT NULL, которое является противоположностью IS NULL, отделяя известные значения от неизвестных.
Оператор AND
Если результат двух условий, объединенных оператором AND, известен, то применяются правила булевой логики, то есть при обоих утверждениях TRUE составное утверждение также будет TRUE. Если же хотя бы одно из двух утвержде ний будет FALSE, то составное утверждение будет FALSE.
Если результат одного из утверждений неизвестен, а другой оценивается как TRUE, то состояние неизвестного утвержде ния является определяющим, и, следовательно, итоговый результат также неизвестен.
Если результат одного из утверждений неизвестен, а другой оценивается как FALSE, итоговый результат будет FALSE.
Если результат обоих утверждений неизвестен, то результат также остается неизвестным.
Оператор OR
Если результат двух условий, объединенных оператором OR, известен, то применяются правила булевой логики, а имен но: если хотя бы одно из двух утверждений соответствует TRUE, то и составное утверждение будет TRUE, если оба ут верждения оцениваются как FALSE, то составное утвержде ние будет FALSE.
Если результат одного из утверждений неизвестен, а другой оценивается как TRUE, итоговый результат будет TRUE.
Если результат одного из утверждений неизвестен, а другой оценивается как FALSE, то состояние неизвестного утвер ждения имеет определяющее значение. Следовательно, ито говый результат также неизвестен.
Если результат обоих утверждений неизвестен, то результат также остается неизвестным.
Примечание
Отсутствующие (NULL) значения целесообразно использовать в столбцах, предназначенных для агрегирования, чтобы извлечь преимущества из способа обработки пустых значений в функциях COUNT и AVERAGE. Практически во всех остальных случаях пустых значений следует избегать, так как при их наличии существенно усложняется корректное построение условий отбора, приводя иногда к непредсказуемым результатам выборки. Для индикации же отсутствующих, неприменимых или по какой-то причине неизвестных данных можно использовать значения по умолчанию, устанавливаемые заранее (например, с помощью команды CREATE TABLE (раздел 4.1)).
| Maya 3D графика в кино и телевидении Воздействие испытаний ядерного оружия на здоровье населения Объектно-ориентированный язык программирования Java Объектно-ориентированное программирование Delphi Библиотека визуальных компонентов VCL и ее базовые классы Кроссплатформенное программирование для Linux Элементы управления Win32 Элементы управления Windows XP Файлы и устройства ввода/вывода Что такое экспертная система? Объектно-ориентированное программирование Инструментальные средства разработки экспертных систем Программирование на языке CLIPS Критерии и количественные характеристики надежности Расчет характеристик надежности невостанавливаемых резервированных изделий Расчет надежности системы с постоянным резервированием Интегрирование тригонометрических функций ; |