★PostgreSQLカンファレンス2024 12月6日開催/チケット販売中★
他のバージョンの文書 16 | 15 | 14 | 13 | 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

8.6. 論理値データ型

PostgreSQLでは、標準SQLboolean型が提供されています。 表 8.19を参照してください。 boolean型はいくつかの状態を取ることができます。 もしくは、そして第3の状態はSQLではNULL値で表現される不明の状態です。

表8.19 論理値データ型

名前格納サイズ説明
boolean1バイト真または偽の状態

論理定数はSQL問い合わせの中で、SQLキーワードのTRUEFALSEおよびNULLによって表現できます。

booleanのデータ型を入力する関数には次の文字列表現をの状態として使うことができます。

true
yes
on
1

の状態には以下の表現が使用できます。

false
no
off
0

tnなど、これらの文字列固有の接頭辞も利用できます。 先頭または末尾の空白文字は無視され、大文字小文字の区別は関係ありません。

booleanのデータ型を出力する関数は例 8.2にあるように、常にtfを出力します。

例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

キーワードであるTRUEFALSEはSQLクエリの中で論理定数の記述として好ましい(SQL準拠)方式です。 しかし、 4.1.2.7のリンクで記述されている、以下のような一般的な文字列リテラル定数の構文に従って'yes'::booleanというような文字表現することもできます。

パーサーは自動的にTRUEFALSEboolean型と理解しますが、NULLは他のすべての型に存在するため、boolean型と理解しない点に気をつけてください。 このため、コンテキストによってはNULL::booleanというように、NULLbooleanに明確にキャストする必要があります。 逆に、解析でリテラルがboolean型でなければならないと推論できるコンテキストでは、文字列リテラルブール値のキャストは省略できます。