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