历史版本。 PostgreSQL 10 已结束支持。 2022-11-10. 请参阅 当前版本手册.
8.6. 布尔类型 #
PostgreSQL 提供标准的 SQL 类型 boolean,参见表 8.19。boolean 可以有多个状态:“true(真)”、“false(假)”和第三种状态“unknown(未知)”,未知状态由 SQL 空值表示。
表 8.19. 布尔数据类型
| 名字 | 存储尺寸 | 描述 |
|---|---|---|
boolean | 1 字节 | 状态为真或假 |
在 SQL 查询中,布尔常量可以用 SQL 关键字 TRUE、FALSE 和 NULL 表示。
boolean 类型的输入函数接受以下表示“真”状态的字符串:
true |
yes |
on |
1 |
以及以下表示“假”状态的字符串:
false |
no |
off |
0 |
这些字符串的唯一前缀也同样可以接受,例如 t 或
n。前导或尾随空白会被忽略,并且大小写不敏感。
boolean 类型的输出函数总是产生 t
或 f,如例 8.2 所示。
例 8.2. 使用 boolean 类型
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
在 SQL 查询中,最好使用关键字 TRUE 和
FALSE 来书写布尔常量(这与
SQL 兼容)。不过,你也可以使用遵循第 4.1.2.7 节中所述通用字符串常量语法的字符串来表示,例如 'yes'::boolean。
注意,语法分析器会自动将 TRUE 和
FALSE 理解为 boolean 类型,但
NULL 不会,因为它可以是任意类型。因此在某些上下文中,你可能需要显式将 NULL 转换为
boolean,例如 NULL::boolean。反过来,如果语法分析器能够判定某个字符串字面量必定是
boolean 类型,则也可以省略这类转换。