比较函数

最近更新时间:2026-05-06 16:28:13

我的收藏
说明:
适用版本: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)
xNULL 则返回 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