Логические операторы#
Логические операторы#
Оператор |
Описание |
Пример |
|---|---|---|
|
Истина, если оба значения истинны |
a AND b |
|
Истина, если хотя бы одно истинно |
a OR b |
|
Истина, если значение ложно |
NOT a |
Влияние NULL на логические операторы#
Результат сравнения AND может быть NULL, если одна или обе
стороны выражения равны NULL. Если хотя бы одна сторона
оператора AND равна FALSE, выражение вычисляется в FALSE:
SELECT CAST(null AS boolean) AND true; -- null
SELECT CAST(null AS boolean) AND false; -- false
SELECT CAST(null AS boolean) AND CAST(null AS boolean); -- null
Результат сравнения OR может быть NULL, если одна или обе
стороны выражения равны NULL. Если хотя бы одна сторона
оператора OR равна TRUE, выражение вычисляется в TRUE:
SELECT CAST(null AS boolean) OR CAST(null AS boolean); -- null
SELECT CAST(null AS boolean) OR false; -- null
SELECT CAST(null AS boolean) OR true; -- true
Следующая таблица истинности показывает обработку
NULL в AND и OR:
a |
b |
a AND b |
a OR b |
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Логическое дополнение NULL — это NULL, как показано в следующем примере:
SELECT NOT CAST(null AS boolean); -- null
Следующая таблица истинности показывает обработку NULL в NOT:
a |
NOT a |
|---|---|
|
|
|
|
|
|