3.5. 布尔类型

Postgres 支持用 bool 作为 SQL99 boolean 数据类型. boolean 只能有两个状态之一: '真'('True') 或 '假'('False'). 第三种状态,'未知'('Unknow'),用 SQL NULL 状态表示. boolean 可用于任何布尔表达式, 并且布尔表达式的结果也是布尔类型兼容的.

“真”值的有效文本值是∶

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

而对于“假”而言,你可以使用下面这些∶

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

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

Example 3-1. 使用 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 3-1 显示了使用字母 tf 输出 boolean 数值的例子.

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

bool 使用1字节存储空间.