BOOLEAN 数据类型用于 CREATE TABLE 和 ALTER TABLE 语句中,表示单一的“真/假”选择。语法
在
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。