PostgreSQL предоставляет стандартный тип SQLboolean
; Тип boolean
может иметь несколько состояний: “true”, “false”, и третье состояние, “unknown”, которое представлено нулевым значением SQL .
Имя | Размер хранилища | Описание |
---|---|---|
boolean | 1 байт | состояние истинное или ложное |
Логические константы могут быть представлены в SQL-запросах ключевыми словами SQL TRUE
, FALSE
и NULL
.
Функция ввода типа данных для type boolean
принимает эти строковые представления для состояния « true » :
true |
yes |
on |
1 |
и эти представления для « ложного » состояния:
false |
no |
off |
0 |
Также допускаются уникальные префиксы этих строк, например t
или n
. Начальные или конечные пробелы игнорируются, и регистр не имеет значения.
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
Ключевые слова TRUE
и FALSE
являются предпочтительным ( совместимым с SQL ) методом записи логических констант в запросах SQL. Но вы также можете использовать строковые представления, следуя общему синтаксису констант строкового литерала, описанному. Обратите внимание, что синтаксический анализатор автоматически понимает, что TRUE
и FALSE
имеют тип boolean
, но это не так NULL
, потому что это может иметь любой тип. Таким образом, в некоторых контекстах вам может потребоваться явное приведение NULL
, boolean
например NULL::boolean
. И наоборот, приведение может быть опущено из логического значения строкового литерала в контекстах, где синтаксический анализатор может сделать вывод, что литерал должен быть типа boolean
.
0 комментариев