一、语法
在 CREATE TABLE 语句的列定义中:
column_name BOOLEAN
二、取值范围
·取值:TRUE 或 FALSE。
·书写规范:字面量 TRUE 和 FALSE 不需要加引号。你可以使用大写、小写或混写。
·查询显示:TCHouse-X 遵循 MySQL 协议规范,布尔值以整数表示:
·1:表示 TRUE
·0:表示 FALSE
三、类型转换
TCHouse-X 不会自动将任何其他类型隐式转换为 BOOLEAN。所有转换必须使用 CAST() 函数进行显式调用。
四、数值类型与 BOOLEAN 的转换
·从数值转 BOOLEAN:任何整数或浮点类型都可以转换为 BOOLEAN。0 表示 false,任何非零值都会转换为 true。
SELECT CAST(42 AS BOOLEAN) AS nonzero_int, CAST(99.44 AS BOOLEAN) AS nonzero_decimal, CAST(000 AS BOOLEAN) AS zero_int, CAST(0.0 AS BOOLEAN) AS zero_decimal;– 结果依次为: 1, 1, 0, 0
·从 BOOLEAN 转数值:结果将变为 1 (true) 或 0 (false)。
SELECT CAST(true AS INT) AS true_int, CAST(false AS DOUBLE) AS false_double;– 结果依次为: 1, 0
·DECIMAL 类型:可以将 DECIMAL 转换为 BOOLEAN(遵循非零即真的规则),但不能直接将 BOOLEAN 转换为 DECIMAL。
select cast(cast (1 as decimal(3,1)) as boolean); — 结果为1select cast(true as decimal); — 报错
五、其他类型转换
·STRING:不能将 STRING 转换为 BOOLEAN。但可以将 BOOLEAN 转换为 STRING,其中 true 返回 'true',false 返回 'false'。
select cast('abc' as boolean); — 报错select cast(false as string); — 返回 'false'select cast(true as string); — 返回 'true'
·TIMESTAMP:虽然支持互转,但结果通常没有实际意义。
六、NULL 值处理
如果表达式中的任何参数为 NULL,则该类型的表达式结果也为 NULL。