8.6. Boolean Type
PostgreSQL
provides the
standard
SQL
type
boolean
;
see
Table 8.19
.
The
boolean
type can have several states:
"
true
"
,
"
false
"
, and a third state,
"
unknown
"
, which is represented by the
SQL
null value.
Table 8.19. Boolean Data Type
Name | Storage Size | Description |
---|---|---|
boolean
|
1 byte | state of true or false |
Boolean constants can be represented in SQL queries by the SQL
key words
TRUE
,
FALSE
,
and
NULL
.
The datatype input function for type
boolean
accepts these
string representations for the
"
true
"
state:
true
|
yes
|
on
|
1
|
and these representations for the " false " state:
false
|
no
|
off
|
0
|
Unique prefixes of these strings are also accepted, for
example
t
or
n
.
Leading or trailing whitespace is ignored, and case does not matter.
The datatype output function for type
boolean
always emits
either
t
or
f
, as shown in
Example 8.2
.
Example 8.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
The key words
TRUE
and
FALSE
are
the preferred (
SQL
-compliant) method for writing
Boolean constants in SQL queries. But you can also use the string
representations by following the generic string-literal constant syntax
described in
Section 4.1.2.7
, for
example
'yes'::boolean
.
Note that the parser automatically understands
that
TRUE
and
FALSE
are of
type
boolean
, but this is not so
for
NULL
because that can have any type.
So in some contexts you might have to cast
NULL
to
boolean
explicitly, for
example
NULL::boolean
. Conversely, the cast can be
omitted from a string-literal Boolean value in contexts where the parser
can deduce that the literal must be of type
boolean
.