PostgreSQL 提供了标准的SQL类型 boolean
;参见 表 8.19。 boolean
类型可以有几种状态:“true”、“false”和第三种状态“unknown”,它由SQLnull 值表示。
表 8.19. 布尔数据类型
名称 | 存储大小 | 描述 |
---|---|---|
boolean |
1 字节 | true 或 false 的状态 |
在 SQL 查询中,布尔常量可以用 SQL 关键字 TRUE
、FALSE
和 NULL
来表示。
类型 boolean
的数据类型输入函数可以接受“true”状态的这些字符串表示形式
true |
是 |
on |
1 |
以及“false”状态的这些字符串表示形式
false |
否 |
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-compliant)方法。但是,您也可以通过遵循 第 4.1.2.7 节 中描述的通用字符串字面量常量语法来使用字符串表示形式,例如 'yes'::boolean
。
请注意,解析器会自动识别 TRUE
和 FALSE
是 boolean
类型,但对于 NULL
则不是,因为 NULL
可以是任何类型。因此,在某些上下文中,您可能需要显式地将 NULL
强制转换为 boolean
类型,例如 NULL::boolean
。相反,在解析器可以推断出字面量必须是 boolean
类型的上下文中,可以省略字符串字面量布尔值的强制转换。
如果您在文档中发现任何不正确、与您对特定功能的体验不符或需要进一步澄清的内容,请使用 此表单 报告文档问题。