24th September 2020: PostgreSQL 13 Released!
Supported Versions: Current (13) / 12 / 11 / 10 / 9.6 / 9.5
Development Versions: devel
Unsupported versions: 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2

9.1. Logical Operators

The usual logical operators are available:

boolean AND booleanboolean
boolean OR booleanboolean
NOT booleanboolean

SQL uses a three-valued logic system with true, false, and null, which represents unknown. Observe the following truth tables:

a b a AND b a OR b
TRUE TRUE TRUE TRUE
TRUE FALSE FALSE TRUE
TRUE NULL NULL TRUE
FALSE FALSE FALSE FALSE
FALSE NULL FALSE NULL
NULL NULL NULL NULL
a NOT a
TRUE FALSE
FALSE TRUE
NULL NULL

The operators AND and OR are commutative, that is, you can switch the left and right operands without affecting the result. (However, it is not guaranteed that the left operand is evaluated before the right operand. See Section 4.2.14 for more information about the order of evaluation of subexpressions.)

Submit correction

If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.