2024 年 9 月 26 日: PostgreSQL 17 发布!
支持的版本:当前 (17) / 16 / 15 / 14 / 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.19boolean 类型可以具有多种状态:“true”、”false” 和第三种状态“unknown”,它由SQL空值表示。

表 8.19. 布尔数据类型

名称 存储大小 描述
boolean 1 字节 true 或 false 状态

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

类型 boolean 的数据类型输入函数接受以下字符串表示形式来表示“true” 状态

true
yes
on
1

以及以下表示形式来表示“false” 状态

false
no
off
0

也接受这些字符串的唯一前缀,例如 tn。 忽略前导或尾随空格,并且不区分大小写。

类型 boolean 的数据类型输出函数始终输出 tf,如 示例 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

关键字 TRUEFALSE 是在 SQL 查询中编写布尔常量的首选(SQL-兼容)方法。 但您也可以使用字符串表示形式,方法是按照 第 4.1.2.7 节 中描述的通用字符串文字常量语法,例如 'yes'::boolean

请注意,解析器会自动识别 TRUEFALSE 属于 boolean 类型,但 NULL 并非如此,因为它可以是任何类型。 因此,在某些情况下,您可能需要显式地将 NULL 转换为 boolean,例如 NULL::boolean。 相反,可以在解析器能够推断文字必须是 boolean 类型的上下文中省略字符串文字布尔值的转换。

提交更正

如果您在文档中发现任何错误,不符合您对特定功能的使用经验,或者需要进一步澄清,请使用 此表格 报告文档问题。