The BOOLEAN Data Type
From InterBase
Go Up to Specifying Data Types
The BOOLEAN data type is a 16-bit data type that represents TRUE and FALSE values in a column. When not prohibited by a NOT NULL constraint, it also supports the UNKNOWN truth value.
For ESQL and DSQL, the following types are defined in ibase.h:
#define SQL_BOOLEAN 590
| SQL Data Type | Macro expression | C data type or typedef | sqlind used? |
|---|---|---|---|
|
|
|
Signed short |
|
|
|
|
Signed short |
|
In ISQL and IBConsole, the output for a BOOLEAN, regardless of values given, is always TRUE, FALSE or UNKNOWN. However, using API function calls, UNKNOWN is treated as NULL, TRUE returns 1, and FALSE returns 0.
Note:
InterBase looks for Booleans of the form “literal <relop> literal” that evaluate to FALSE and returns a false Boolean inversion node to short-circuit data retrieval.
InterBase looks for Booleans of the form “literal <relop> literal” that evaluate to FALSE and returns a false Boolean inversion node to short-circuit data retrieval.
Examples:
The following code illustrates the use of the BOOLEAN data type.
- SQL statements:
CREATE TABLE AWARDS_1 (isEligible BOOLEAN, name VARCHAR(20));
INSERT INTO AWARDS_1 VALUES (TRUE, 'Jim Smith');
INSERT INTO AWARDS_1 VALUES (FALSE, 'John Buttler');
SELECT * FROM AWARDS_1;
Result:
ISELIGIBLE NAME ========== ============ TRUE Jim Smith FALSE John Buttler
- SQL statement:
SELECT * FROM AWARDS_1 WHERE isEligible = TRUE;
Result:
ISELIGIBLE NAME ========== ========= TRUE Jim Smith
- SQL statement:
SELECT * FROM AWARDS_1 WHERE isEligible;
Result:
ISELIGIBLE NAME ========== ========= TRUE Jim Smith
- SQL statement:
SELECT * FROM AWARDS_1 WHERE NOT isEligible;
Result:
ISELIGIBLE NAME ========== ============ FALSE John Buttler