↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 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

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

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。英文原文本身的问题请通过上游文档表单反馈给 PostgreSQL 文档维护者。