Сейчас на сайте
Сейчас на сайте 0 пользователей и 0 гостей.

Предикаты

Следующее определяет список различных типов предиката < predicate > описанных на следующих страницах:

< predicate > ::= [NOT]

{ < comparison predicate > | < in predicate > | < null predicate > | < between predicate > | < like predicate > | < quantified predicate > | < exists predicate > } [ANDI OR < predicate > ]

< predicate > - это выражение, которое может быть верным, неверным, или неизвестным, за исключением < exists predicate > и < null predicate >, которые могут быть только верными или неверными.

Будет получено неизвестно, если NULL значения предотвращают вывод полученного ответа. Это будет случаться всякий раз, когда NULL значение сравнивается с любым значением. Стандартные операторы Буля - AND, OR, и NOT - могут использоваться с предикатом. NOT верно = неверно, NOT неверно = верно, а NOT неизвестно = неизвестно. Результаты AND и OR в комбинации с предикатами, показаны в следующих таблицах:

AND

AND Верно Неверно Неизвестно
Верно Верно Неверно Неизвестно
Неверно неверно Неверно Неверно
Неизвестно Неизвестно Неверно Неизвестно

OR

OR Верно Неверно Неизвестно
Верно Верно Верно Верно
Неверно Верно Неверно Неизвестно
Неизвестно Верно Неизвестно Неизвестно

Эти таблицы читаются способом наподобие таблицы умножения: вы объединяете верные, неверные, или неизвестные значения из строк с их столбцами, чтобы на перекрестье получить результат. В таблице AND, например, третий столбец (Неизвестно) и первая строка (Верно) на пересечении в верхнем правом углу дают результат - неизвестно, другими словами: Верно AND Неизвестно = неизвестно. Порядок вычислений определяется круглыми скобками. Они не представляются каждый раз. NOT оценивается первым, далее AND и OR. Различные типы предикатов < predicate > рассматриваются отдельно в следующем разделе.