PostgreSQL 8.0.0rc4 Documentation
Prev | Fast Backward | Chapter 8. Data Types | Fast Forward | Next

# 8.6. Boolean Type

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:

`TRUE`
`'t'`
`'true'`
`'y'`
`'yes'`
`'1'`

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 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

Example 8-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 9.13.

`boolean` uses 1 byte of storage.

Prev | Home | Next
Date/Time Types | Up | Geometric Types