PostgreSQL 提供标准 SQL 类型 boolean;请参见 表 8.19。boolean 类型可以有几种状态:“true”、“false” 和第三种状态 “unknown”,由 SQL null 值表示。
表 8.19. 布尔数据类型
| 名称 | 存储大小 | 说明 |
|---|---|---|
boolean |
1 字节 | true 或 false 状态 |
布尔常量可以用 SQL 关键字 TRUE、FALSE 和 NULL 在 SQL 查询中表示。
类型 boolean 的数据类型输入函数接受这些字符串表示形式,表示 “true” 状态
true |
yes |
on |
1 |
以及这些表示形式表示 “false” 状态
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
关键字 TRUE 和 FALSE 是在 SQL 查询中编写布尔常量的首选(SQL 兼容)方法。但是,你也可以使用字符串表示形式,方法是遵循 第 4.1.2.7 节 中描述的通用字符串常量语法,例如 'yes'::boolean。
请注意,解析器会自动理解 TRUE 和 FALSE 是 boolean 类型,但 NULL 则不然,因为它可以是任何类型。因此,在某些情况下,你可能必须将 NULL 显式转换为 boolean,例如 NULL::boolean。相反,在解析器可以推断出该文字必须是 boolean 类型的上下文中,可以从字符串文字布尔值中省略转换。
如果你在文档中看到任何不正确的内容,与你对特定功能的体验不符或需要进一步澄清,请使用 此表单 报告文档问题。