2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

8.6. 布林型別 #

PostgreSQL 提供了標準的SQL型別 boolean;參見 表 8.19boolean 型別可以有幾種狀態:“true”、“false”和第三種狀態“unknown”,它由SQLnull 值表示。

表 8.19. 布林資料型別

名稱 儲存大小 描述
boolean 1 位元組 true 或 false 的狀態

在 SQL 查詢中,布林常量可以用 SQL 關鍵字 TRUEFALSENULL 來表示。

型別 boolean 的資料型別輸入函式可以接受“true”狀態的這些字串表示形式

true
on
1

以及“false”狀態的這些字串表示形式

false
off
0

這些字串的唯一字首也同樣被接受,例如 tn。前導或尾隨的空格將被忽略,且不區分大小寫。

型別 boolean 的資料型別輸出函式始終輸出 tf,如 示例 8.2 所示。

示例 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

在 SQL 查詢中,關鍵字 TRUEFALSE 是編寫布林常量的首選(SQL-compliant)方法。但是,您也可以透過遵循 第 4.1.2.7 節 中描述的通用字串字面量常量語法來使用字串表示形式,例如 'yes'::boolean

請注意,解析器會自動識別 TRUEFALSEboolean 型別,但對於 NULL 則不是,因為 NULL 可以是任何型別。因此,在某些上下文中,您可能需要顯式地將 NULL 強制轉換為 boolean 型別,例如 NULL::boolean。相反,在解析器可以推斷出字面量必須是 boolean 型別的上下文中,可以省略字串字面量布林值的強制轉換。

提交更正

如果您在文件中發現任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用 此表單 報告文件問題。