BOOLEAN
BOOLEAN 类型表示逻辑真值,取值为 TRUE、FALSE 或 NULL。Lakehouse 使用三值逻辑:NULL 表示"未知",不等同于 FALSE。
语法
字面量:
TRUE / FALSE(大小写不敏感)
示例
字面量与基本运算
| true | false | (NOT true) | (NOT false) |
|---|---|---|---|
| true | false | false | true |
三值逻辑(NULL 参与运算)
| t_and_null | f_and_null | t_or_null | f_or_null |
|---|---|---|---|
| null | false | true | null |
→FALSE AND NULL
:无论 NULL 是什么,结果都是 FALSEFALSE
→TRUE OR NULL
:无论 NULL 是什么,结果都是 TRUETRUE- 其他情况结果取决于未知值,返回 NULL
类型转换
数值 → BOOLEAN
| CAST(1 AS boolean) | CAST(0 AS boolean) | CAST(2 AS boolean) |
|---|---|---|
| true | false | true |
0 转为 FALSE,其他非零整数转为 TRUE。
字符串 → BOOLEAN
| true | false | yes→true | no→false | t→true | f→false | 1→true |
|---|---|---|---|---|---|---|
| true | false | true | false | true | false | true |
支持的字符串(大小写不敏感):
true/false、yes/no、t/f、1/0。其他字符串转换结果为 NULL。
BOOLEAN → 其他类型
| CAST(true AS int) | CAST(false AS int) | CAST(true AS string) | CAST(false AS string) |
|---|---|---|---|
| 1 | 0 | true | false |
在 WHERE 子句中使用
WHERE 子句只返回结果为
TRUE 的行;FALSE 和 NULL 均被过滤。
注意事项
- BOOLEAN 不支持大小比较(
、>
),只支持<
、=
、!=
、IS NULL
。IS NOT NULL - 在 WHERE 子句中,
行会被过滤,需用NULL
显式处理。IS NULL - 不支持将 BOOLEAN 转换为 DATE、TIMESTAMP 等时间类型。
相关文档
联系我们
