说明:
适用版本:TCHouse-X 内核版本 2.0.0及以上版本。
TCHouse-X 遵循 MySQL 协议规范,布尔值以整数表示:
1:表示 TRUE
0:表示 FALSE
相等性判断
函数名称 | 运算符 | 说明 | 示例 |
equalto | = | NULL = NULL 结果为 NULL。 | SELECT equalto(null, null); -- NULL |
equalnullsafe | <=> | NULL <=> NULL 结果为 1 | SELECT equalnullsafe(null, null); -- 1 |
neq | != | 任意操作数为 NULL 则结果为 NULL。 | SELECT neq(1,2); -- 1 |
isnull | IS NULL | 判断输入是否为 NULL。 | SELECT isnull(1); -- 0 |
isnotnull | IS NOT NULL | 判断输入是否不为 NULL。 | SELECT isnotnull(1); -- 1 |
范围与大小比较
函数 | 运算符 | 说明 | 示例 |
between(x, min, max) | BETWEEN | 检查 x 是否在闭区间 [min, max] 内。 | SELECT `between`(15, 10, 20);-- 1 |
greaterthan(x,y) | > | x 严格大于 y 时返回 1。 | SELECT greaterthan(10, 5); --1 |
greaterthanorequal(x, y) | >= | x 大于或等于 y 时返回 1。 | SELECT greaterthanorequal(10, 5); --1 |
lessthan(x, y) | < | x 严格小于 y 时返回 1。 | SELECT lessthan(10, 5); --0 |
lessthanorequal(x, y) | <= | x 小于或等于 y 时返回 1。 | SELECT lessthanorequal(10, 5); --0 |
空值与异常处理
函数名称 | 说明 | 示例 |
coalesce(x, ...) | 返回参数列表中的第一个非空值。若全为 NULL 则返回 NULL。 | SELECT coalesce(NULL, NULL, 'Spark', 'SQL'); -- 'Spark' |
ifnull(x, y) / nvl(x, y) | 若 x 为 NULL 则返回 y;否则返回 x。 | SELECT ifnull(NULL, 0), nvl('A', 'B'); --0, 'A' |
nvl2(x, y, z) | 若 x 不为 NULL 返回 y;否则返回 z。 | SELECT nvl2('data', 'Valid', 'Missing'); -- 'Valid' |
nullif(x, y) | 若 x = y 返回 NULL;否则返回 x。 | SELECT nullif(100, 100), nullif(100, 200); --NULL, 100 |
nanvl(x, y) | 若 x 不是 NaN 返回 x;否则返回 y。通常用于将浮点异常值替换为默认值。 | SELECT nanvl(CAST('NaN' AS DOUBLE), 0.0); --0 |