Postgres 支持用 bool 作为 SQL99 boolean 数据类型. boolean 只能有两个状态之一: '真'('True') 或 '假'('False'). 第三种状态,'未知'('Unknow'),用 SQL NULL 状态表示. boolean 可用于任何布尔表达式, 并且布尔表达式的结果也是布尔类型兼容的.
“真”值的有效文本值是∶
TRUE |
't' |
'true' |
'y' |
'yes' |
'1' |
FALSE |
'f' |
'false' |
'n' |
'no' |
'0' |
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 显示了使用字母 t 和 f 输出 boolean 数值的例子.
技巧: boolean 类型的数值不能直接转换成其它 类型(也就是说, CAST (boolval AS integer) 是不会起作用的).你可以用 CASE 表达式实现这个目地∶ CASE WHEN boolval THEN 'value if true' ELSE'value if false' END.又见 Section 4.10.
bool 使用1字节存储空间.