Определение логического выражения.
::=
::=
::=
::=
Результатом <логического выражения>
будет результат применения логических операций к тем условиям, которые получены при применении заданного <предиката>
к данной строке таблицы или к данной группе в сгруппированной таблице. Если логические операции не заданы, то результатом <логического выражения>
будет результат заданного <предиката>
.
select make from auto where not bodytype ='SEDAN' and (cylnders>6 or weight between 3000 and 4000) or (color like 'В%' and not year=70);
Результатом NOT (TRUE)
является значение FALSE
, результатом NOT (FALSE)
– значение TRUE
, результатом NOT (UNKNOWN)
– значение UNKNOWN
. Операции AND
и OR
определяются из таблиц истинности, приведенных ниже.
Логическое значение UNKNOWN
в данной версии СУБД ЛИНТЕР не поддерживается.
Выражения внутри скобок вычисляются первыми. Если порядок вычислений не задан, приоритет операций следующий: NOT
, AND
, OR
. Операции одинакового приоритета выполняются слева направо.
Результаты выполнения операции AND
:
AND | TRUE | FALSE | UNKNOWN |
TRUE | TRUE | FALSE | UNKNOWN |
FALSE | FALSE | FALSE | FALSE |
UNKNOWN | NULL | FALSE | UNKNOWN |
Результаты выполнения операции OR
:
OR | TRUE | FALSE | UNKNOWN |
TRUE | TRUE | TRUE | TRUE |
FALSE | TRUE | FALSE | UNKNOWN |
UNKNOWN | TRUE | UNKNOWN | UNKNOWN |