Логические операторы#

Логические операторы#

Оператор

Описание

Пример

AND

Истина, если оба значения истинны

a AND b

OR

Истина, если хотя бы одно истинно

a OR b

NOT

Истина, если значение ложно

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

TRUE

TRUE

TRUE

TRUE

TRUE

FALSE

FALSE

TRUE

TRUE

NULL

NULL

TRUE

FALSE

TRUE

FALSE

TRUE

FALSE

FALSE

FALSE

FALSE

FALSE

NULL

FALSE

NULL

NULL

TRUE

NULL

TRUE

NULL

FALSE

FALSE

NULL

NULL

NULL

NULL

NULL

Логическое дополнение NULL — это NULL, как показано в следующем примере:

SELECT NOT CAST(null AS boolean); -- null

Следующая таблица истинности показывает обработку NULL в NOT:

a

NOT a

TRUE

FALSE

FALSE

TRUE

NULL

NULL