8.6. 布尔类型

PostgreSQL 支持标准的 SQL boolean 数据类型。 boolean 只能有两个状态之一: '真'('True') 或 '假'('False')。 第三种状态,'未知'('Unknow'),用 SQL空状态表示。

"真"值的有效文本值是:

TRUE
't'
'true'
'y'
'yes'
'1'

而对于"假"而言,你可以使用下面这些:

FALSE
'f'
'false'
'n'
'no'
'0'

使用TRUEFALSE 这样的字眼比较好(也是SQL兼容的用法)。

Example 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

Example 8-2 显示了使用字母 tf 输出 boolean 数值的例子。

技巧: boolean 类型的数值不能直接转换成其它 类型(也就是说, CAST (boolval AS integer) 是不会起作用的)。你可以用 CASE 表达式实现这个目的: CASE WHEN boolval THEN 'value if true' ELSE'value if false' END。见 Section 9.13

bool 使用1字节存储空间。