受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: devel

8.6. 布尔类型 #

PostgreSQL提供标准的SQL类型boolean,参见Table 8.19boolean可以有多个状态:true(真)false(假)和第三种状态unknown(未知),未知状态由SQL空值表示。

Table 8.19. 布尔数据类型

名字 存储尺寸 描述
boolean 1字节 状态为真或假

在 SQL 查询中,布尔常量可以用 SQL 关键字 TRUEFALSENULL 表示。

boolean 类型的输入函数接受以下表示状态的 字符串:

true
yes
on
1

以及以下表示状态的字符串:

false
no
off
0

这些字符串的唯一前缀也同样可以接受,例如 tn。前导或尾随空白会被忽略,并且大小写不敏感。

boolean 类型的输出函数总是产生 tf,如 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 查询中,最好使用关键字 TRUEFALSE 来书写布尔常量(这与 SQL 兼容)。不过,你也可以使用遵循 Section 4.1.2.7 中所述通用字符串 常量语法的字符串来表示,例如 'yes'::boolean

注意,语法分析器会自动将 TRUEFALSE 理解为 boolean 类型,但 NULL 不会,因为它可以是任意类型。因此在某些上下文中, 你可能需要显式将 NULL 转换为 boolean,例如 NULL::boolean。 反过来,如果语法分析器能够判定某个字符串字面量必定是 boolean 类型,则也可以省略这类转换。

提交更正

如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。