Оператор IS
Предикаты могут использовать оператор Логический IS [NOT]
для сопоставления.Например, field1 IS FALSE
, или field1 IS NOT TRUE
.
Note
|
|
Типы данных с плавающей точкой
Типы данных с фиксированной точкой
Типы данных для работы с датой и временем
IS
Предикаты могут использовать оператор Логический IS [NOT]
для сопоставления.Например, field1 IS FALSE
, или field1 IS NOT TRUE
.
Note
|
|
BOOLEAN
CREATE TABLE TBOOL (ID INT, BVAL BOOLEAN);
COMMIT;
INSERT INTO TBOOL VALUES (1, TRUE);
INSERT INTO TBOOL VALUES (2, 2 = 4);
INSERT INTO TBOOL VALUES (3, NULL = 1);
COMMIT;
SELECT * FROM TBOOL
ID BVAL ============ ======= 1 <true> 2 <false> 3 <null>
TRUE
значенияSELECT * FROM TBOOL WHERE BVAL
ID BVAL ============ ======= 1 <true>
FALSE
значенияSELECT * FROM TBOOL WHERE BVAL IS FALSE
ID BVAL ============ ======= 2 <false>
UNKNOWN
значенияSELECT * FROM TBOOL WHERE BVAL IS UNKNOWN
ID BVAL ============ ======= 3 <null>
SELECT ID, BVAL, BVAL AND ID < 2
FROM TBOOL
ID BVAL ============ ======= ======= 1 <true> <true> 2 <false> <false> 3 <null> <false>
DECLARE VARIABLE VAR1 BOOLEAN = TRUE;
-- Допустимый синтаксис, но как и сравнение
-- с NULL, никогда не вернёт ни одной записи
SELECT * FROM TBOOL WHERE BVAL = UNKNOWN
SELECT * FROM TBOOL WHERE BVAL <> UNKNOWN
Хотя BOOLEAN
по своей сути не может быть преобразован в какой-либо другой тип данных, начиная с версии 3.0.1 строки 'true'
и 'false'
(без учёта регистра) будут неявно приводиться к BOOLEAN
в выражениях значений, например
if (true > 'false') then ...
'false'
преобразуется в BOOLEAN
.Любая попытка использовать логические операторы AND
, NOT
, OR
и IS
потерпят неудачу.Например, NOT 'False'
приведёт к ошибке.
A BOOLEAN
может быть явно преобразован в строку и из нее с помощью CAST
.Значение UNKNOWN
не доступен при преобразовании к строке.
Note
|
Другие замечания
|