BOOLEAN

BOOLEAN
BOOLEAN
类型表示逻辑真值,取值为
TRUE
TRUE
FALSE
FALSE
NULL
NULL
。Lakehouse 使用三值逻辑:NULL 表示"未知",不等同于 FALSE。

语法

BOOLEAN

字面量:

TRUE
TRUE
/
FALSE
FALSE
(大小写不敏感)

示例

字面量与基本运算

SELECT TRUE, FALSE, NOT TRUE, NOT FALSE;

truefalse(NOT true)(NOT false)
truefalsefalsetrue

三值逻辑(NULL 参与运算)

SELECT TRUE AND NULL AS t_and_null, FALSE AND NULL AS f_and_null, TRUE OR NULL AS t_or_null, FALSE OR NULL AS f_or_null;

t_and_nullf_and_nullt_or_nullf_or_null
nullfalsetruenull
  • FALSE AND NULL
    FALSE AND NULL
    FALSE
    FALSE
    :无论 NULL 是什么,结果都是 FALSE
  • TRUE OR NULL
    TRUE OR NULL
    TRUE
    TRUE
    :无论 NULL 是什么,结果都是 TRUE
  • 其他情况结果取决于未知值,返回 NULL

类型转换

数值 → BOOLEAN

SELECT CAST(1 AS BOOLEAN), CAST(0 AS BOOLEAN), CAST(2 AS BOOLEAN);

CAST(1 AS boolean)CAST(0 AS boolean)CAST(2 AS boolean)
truefalsetrue

0
0
转为
FALSE
FALSE
,其他非零整数转为
TRUE
TRUE

字符串 → BOOLEAN

SELECT CAST('true' AS BOOLEAN), CAST('false' AS BOOLEAN), CAST('yes' AS BOOLEAN), CAST('no' AS BOOLEAN), CAST('t' AS BOOLEAN), CAST('f' AS BOOLEAN), CAST('1' AS BOOLEAN);

truefalseyes→trueno→falset→truef→false1→true
truefalsetruefalsetruefalsetrue

支持的字符串(大小写不敏感):

true
true
/
false
false
yes
yes
/
no
no
t
t
/
f
f
1
1
/
0
0
。其他字符串转换结果为 NULL。

BOOLEAN → 其他类型

SELECT CAST(TRUE AS INT), CAST(FALSE AS INT), CAST(TRUE AS STRING), CAST(FALSE AS STRING);

CAST(true AS int)CAST(false AS int)CAST(true AS string)CAST(false AS string)
10truefalse

在 WHERE 子句中使用

SELECT * FROM t WHERE is_active; -- 等价于 WHERE is_active = TRUE SELECT * FROM t WHERE NOT is_active; -- 等价于 WHERE is_active = FALSE SELECT * FROM t WHERE is_active IS NULL; -- 筛选 NULL 行

WHERE 子句只返回结果为

TRUE
TRUE
的行;
FALSE
FALSE
NULL
NULL
均被过滤。

注意事项

  • BOOLEAN 不支持大小比较(
    >
    >
    <
    <
    ),只支持
    =
    =
    !=
    !=
    IS NULL
    IS NULL
    IS NOT NULL
    IS NOT NULL
  • 在 WHERE 子句中,
    NULL
    NULL
    行会被过滤,需用
    IS NULL
    IS NULL
    显式处理。
  • 不支持将 BOOLEAN 转换为 DATE、TIMESTAMP 等时间类型。

相关文档

联系我们
预约咨询
微信咨询
电话咨询