Понимание истинности и ложности

Понимание истинности и ложности

Семантически, если предикат возвращает "неопределенность", это не является ни истиной, ни ложью. В SQL при этом утверждения разрешаются только в виде "истина" или "ложь" - утверждение, которое не вычисляется как "истина", рассматривается как "ложь".

Условие IF, неявно присутствующее в предикатах поиска, может вызвать у вас галлюцинацию, когда NOT используется во вложенном условии:

NOT <условие, дающее ложь> дает TRUE

в то время как

NOT <условие, дающее NULL> дает NULL

Чтобы получить пример, когда наши предположения могут оказаться ошибочными, рассмотрим следующее:

WHERE

NOT (COLUMNA = COLUMNB)

Если оба столбца COLUMNA и COLUMNB имеют значения и не равны, вычисление внутреннего предиката (того, что заключен в скобки) даст "ложь". Утверждение NOT (FALSE) вернет истину - противоположность ложного значения.

Однако если любой из столбцов является NULL, внутренний предикат даст NULL, имеющий семантическое значение "неопределенный" ("непроверенный", "неопознаваемый"). Окончательное утверждение будет NOT (NULL), а результатом станет NULL. Обратите также внимание, что NOT (NULL) не является тем же самым, что и IS NOT NULL- чисто бинарный предикат, который никогда не вернет "неопределенное значение".

! ! !

ВНИМАНИЕ! Этот урок заключается в том, что нужно быть внимательным при работе с логикой SQL и всегда жестко проверять ваши выражения. Учитывайте условия NULL, если вы можете это сделать, полностью исключайте утверждения NOT во вложенных предикатах.

. ! .

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Понимание требований

Из книги автора

Понимание требований Один из главных уроков, который вы должны извлечь из данной книги, заключается в том, что изучение существующих ограничений – это первый и наиболее важный этап. Мы должны найти критерии, которые сделают наш проект максимально успешным и удобным в


Понимание интересов работодателя/заказчика

Из книги автора

Понимание интересов работодателя/заказчика Проблемы вашего работодателя – это ваши проблемы. Вы должны понимать их и постараться найти лучшие решения. В ходе разработки системы представьте себя на месте своего работодателя и убедитесь в том, что разрабатываемые вами


Глава вторая Язык, понимание и сценарии

Из книги автора

Глава вторая Язык, понимание и сценарии 2.1. Слова, предложения и смысл «Механизм восприятия образов обладает некоторыми недостатками, которые являются платой за его исключительно ценные качества. Два из них, видимо, наиболее важны: образ, в особенности зрительный,


2.2. Понимание концепций уровней зрелости

Из книги автора

2.2. Понимание концепций уровней зрелости CMM представляет собой описательную модель, поскольку она описывает существенные (или ключевые) атрибуты, которые, как предполагается, должны характеризовать организацию определенного уровня зрелости. Это модель является


2.2.1. Понимание концепции начального уровня

Из книги автора

2.2.1. Понимание концепции начального уровня Хотя для организаций уровня 1 обычно характерны специально создаваемые и даже хаотические процессы, они, несмотря на выход за рамки бюджета и графика, часто разрабатывают вполне функциональные продукты. Успех для организаций


2.2.2. Понимание повторяемого и определенного уровней

Из книги автора

2.2.2. Понимание повторяемого и определенного уровней По мере роста объема и сложности проекта, внимание постепенно смещается от технических вопросов к организационным и управленческим — т. е. к вопросам, которые находятся в фокусе рассмотрения модели зрелости процессов


2.2.3. Понимание управляющего и оптимизированного уровней

Из книги автора

2.2.3. Понимание управляющего и оптимизированного уровней Четвертый и пятый уровни зрелости относительно незнакомы для программной отрасли. Существуют лишь несколько примеров проектов разработки и организаций уровня 4 и 5 [Humphrey 91a, Kitson 92]. Для создания общей картины


МАРТИН ГРУБЕР Понимание SQL

Из книги автора

МАРТИН ГРУБЕР Понимание SQL Перевод Лебедева В.Н.Под редакцией Булычева В.Н.МОСКВА, 1993MARTIN GRUBERUnderstanding SQL Команда SELECT SELECT * | { [ DISTINCT | ALL] <value expression>.,..} FROM { <table name> [ <alias> ] }.,.. [ WHERE <predicate>] [ GROUP BY { <column name> | <integer> }.,..] [ HAVING <predicate>] [ ORDERBY { <column name> | <integer>


Понимание важности объектной модели

Из книги автора

Понимание важности объектной модели Вам придется сообщать VBA о том, какой конкретный объект нужен вам для работы, поэтому хорошее понимание объектной модели VBA-приложения оказывается очень важным для эффективной работы в нем. С помощью диаграммы объектной модели


Понимание функции EXTRACT()

Из книги автора

Понимание функции EXTRACT() Функция EXTRACT() вызывает исключение, если она получает пустой аргумент. Этот факт можно использовать в простых запросах для проверки условия NOT NULL или в выражениях подзапросов при декодировании полей типа дата/время. Тем не менее во внешних


ПИСЬМОНОСЕЦ: С надеждой на понимание, вася

Из книги автора

ПИСЬМОНОСЕЦ: С надеждой на понимание, вася Автор: Владимир ГуриевИзвините, но, по-моему, это свинство!Совершенно, я считаю, необоснованно в статье г-на Голубицкого («КТ» #14 от 10.04.07), рассказывающей о похождениях некоей крайне нечистоплотной личности по имени Паша,


4.3. Логические функции и таблицы истинности

Из книги автора

4.3. Логические функции и таблицы истинности Соотношения между логическими переменными и логическими функциями в алгебре логики можно отобразить также с помощью соответствующих таблиц, которые носят название таблиц истинности. Таблицы истинности находят широкое


Обеспечить понимание вопросов безопасности всеми руководителями

Из книги автора

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


5. Понимание текстов

Из книги автора

5. Понимание текстов Что значит понять текст? Ответ на этот вопрос, приемлемый в равной степени для лингвиста, психолога или философа, отсутствует. Феномен понимания во многом еще остается загадочным. В интеллектуальных системах имеется способ уточнить интерпретацию