Условие поиска
Условие поиска принимает значения true, false или unknown в зависимости от результата применения булевских операторов к составляющим его простым условиям. Синтаксис и семантика условия поиска в SQL/92 практически такие же, как в SQL/89, но в стандарте SQL/92 более четко специфицирована трехзначная логика, в которой происходит вычисление условия поиска. Синтаксис определяется следующими правилами:
<search condition> ::= <boolean term> |<search condition> OR <boolean term> <boolean term> ::= <boolean factor> |<boolean term> AND <boolean factor> <boolean factor> ::= [ NOT ] <boolean test> <boolean test> ::= <boolean primary> [ IS [ NOT ] <truth value> ] <truth value> ::= TRUE |FALSE |UNKNOWN <boolean primary> ::= <predicate> | <left paren> <search condition> <right paren>
Пояснения:
Таблица истинности для оператора AND
true | false | unknown | |
true | true | false | unknown |
false | false | false | false |
unknown | unknown | false | unknown |
Таблица истинности для оператора OR
true | false | unknown | |
true | true | true | true |
false | true | false | unknown |
unknown | true | unknown | unknown |
Таблица истинности для оператора IS
true | false | unknown | |
true | true | true | false |
false | false | true | false |
unknown | false | false | unknown |