8.6. Boolean Type
Postgres Pro provides the standardSQL type Table 8.19. Boolean Data Type Boolean constants can be represented in SQL queries by the SQL key words The datatype input function for typeboolean
; seeTable 8.19. Theboolean
type can have several states:“true”,“false”, and a third state,“unknown”, which is represented by theSQL null value.Name Storage Size Description boolean
1 byte state of true or false TRUE
,FALSE
, andNULL
.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 examplet
orn
. Leading or trailing whitespace is ignored, and case does not matter.
The datatype output function for typeboolean
always emits eithert
orf
, as shown inExample 8.2.
Example 8.2. Using theboolean
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 estSELECT * FROM test1 WHERE a; a | b---+--------- t | sic est
The key wordsTRUE
andFALSE
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 inSection 4.1.2.7, for example'yes'::boolean
.
Note that the parser automatically understands thatTRUE
andFALSE
are of typeboolean
, but this is not so forNULL
because that can have any type. So in some contexts you might have to castNULL
toboolean
explicitly, for exampleNULL::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 typeboolean
.