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 |