PostgreSQL provides the standard SQL type boolean. boolean can have one of only two states: "true" or "false". A third state, "unknown", is represented by the SQL null value.
Valid literal values for the "true" state are:
For the
"false" state, the following values can be used:
| FALSE |
| 'f' |
| 'false' |
| 'n' |
| 'no' |
| '0' |
Using the key words
TRUE and
FALSE is preferred (and
SQL-compliant).
Example 5-2. Using the boolean type
CREATE TABLE test1 (a boolean, b text);
INSERT INTO test1 VALUES (TRUE, 'sic est');
INSERT INTO test1 VALUES (FALSE, 'non est');
SELECT * FROM test1;
a | b
---+---------
t | sic est
f | non est
SELECT * FROM test1 WHERE a;
a | b
---+---------
t | sic est
Example 5-2 shows that boolean values are output using the letters t and f.
Tip: Values of the boolean type cannot be cast directly to other types (e.g., CAST (boolval AS integer) does not work). This can be accomplished using the CASE expression: CASE WHEN boolval THEN 'value if true' ELSE 'value if false' END. See also Section 6.12.
boolean uses 1 byte of storage.