| Name | Aliases | Description |
|---|---|---|
BOOLEAN |
BOOL |
逻辑布尔值 (true/false) |
BOOLEAN 类型表示一个真值陈述(“真”或“假”)。在 SQL 中,BOOLEAN 字段还可以有第三种状态“未知”,由 SQL NULL 值表示。
选择一个BOOLEAN列的三种可能值:
SELECT true, false, NULL::BOOLEAN;
布尔值可以使用字面量 true 和 false 显式创建。然而,它们通常是通过比较或连接操作创建的。例如,比较 i > 10 会生成一个布尔值。布尔值可以用于 SQL 语句的 WHERE 和 HAVING 子句中,以从结果中过滤出元组。在这种情况下,谓词评估为 true 的元组将通过过滤器,而谓词评估为 false 或 NULL 的元组将被过滤掉。考虑以下示例:
创建一个包含值5、15和NULL的表:
CREATE TABLE integers (i INTEGER);
INSERT INTO integers VALUES (5), (15), (NULL);
选择所有 i > 10 的条目:
SELECT * FROM integers WHERE i > 10;
在这种情况下,5和NULL被过滤掉了(5 > 10是false,而NULL > 10是NULL):
| i |
|---|
| 15 |
连词
AND/OR 连接词可以用来组合布尔值。
以下是AND连接的真相表(即x AND y)。
| X | X AND 真 | X AND 假 | X AND 空 |
|---|---|---|---|
| true | true | false | NULL |
| 假 | 假 | 假 | 假 |
| NULL | NULL | false | NULL |
以下是OR连接的真值表(即x OR y)。
| X | X 或 true | X 或 false | X 或 NULL |
|---|---|---|---|
| 真 | 真 | 真 | 真 |
| 假 | 真 | 假 | 空 |
| NULL | true | NULL | NULL |