↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
开发快照。 PostgreSQL 20devel 尚未正式发布,内容仍可能变化。

8.6. 布尔类型 #

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

表 8.19. 布尔数据类型

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

在 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 类型,则也可以省略这类转换。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.