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