8.6. Тип Boolean#

8.6. Тип Boolean

8.6. Тип Boolean

Tantor SE предоставляет стандартный тип SQL boolean; см. Таблица 8.19. Тип boolean может иметь несколько состояний: true, false и третье состояние, unknown, которое представляется значением null в SQL.

Таблица 8.19. Тип данных Boolean

ИмяРазмер хранилищаОписание
boolean1 байтсостояние true или false

Логические константы могут быть представлены в SQL-запросах с помощью ключевых слов SQL TRUE, FALSE и NULL.

Функция ввода данных для типа boolean принимает следующие строковые представления для состояния true:

true
yes
on
1

и эти представления для состояния false:

false
no
off
0

Уникальные префиксы этих строк также принимаются, например t или n. Ведущие или завершающие пробелы игнорируются, и регистр не имеет значения.

Специальная функция вывода данных для типа boolean всегда выводит либо t, либо f, как показано в Пример 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

Ключевые слова TRUE и FALSE являются предпочтительным (соответствующим стандарту SQL) способом записи логических констант в SQL-запросах. Но вы также можете использовать строковые представления, следуя общему синтаксису констант строковых литералов, описанному в Раздел 4.1.2.7, например 'yes'::boolean.

Обратите внимание, что парсер автоматически понимает, что TRUE и FALSE имеют тип boolean, но это не относится к NULL, потому что он может иметь любой тип. Поэтому в некоторых контекстах вам может потребоваться явно привести NULL к типу boolean, например, NULL::boolean. Наоборот, приведение можно опустить для строкового литерала логического значения в контекстах, где парсер может вывести, что литерал должен иметь тип boolean.