Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17

8.6. 布尔类型 #

PostgreSQL 提供标准SQL类型 boolean;请参阅 表 8.19boolean 类型可能具有以下几种状态:truefalse 以及第三种状态 unknown,由空值表示。SQL空值。

表 8.19。布尔数据类型

名称 存储大小 说明
布尔 1 字节 true 或 false 状态

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

类型 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

在 SQL 查询中编写布尔常量,首选关键字 TRUEFALSE (SQL-compliant)。但是也可以通过遵循 第 4.1.2.7 节 中描述的通用字符串常量语法来使用字符串表示,例如 'yes'::boolean

请注意,解析器自动理解 TRUEFALSE 的类型为 boolean,但对于 NULL 并非如此,因为 NULL 可能具有任何类型。因此在某些上下文中,可能需要显式地将 NULL 强制转换为 boolean,例如 NULL::boolean。相反,在解析器可以推断出该文字必须为类型 boolean 的上下文中,可以从字符串文字布尔值中省略强制转换。