比较函数
安全云脑SecMaster SQL语法支持的比较函数如下表所示:
函数 |
函数功能说明 |
---|---|
value1 = value2 |
如果 value1 等于 value2 返回 TRUE;如果 value1 或者 value2 为 NULL 返回 UNKNOW。 |
value1 <> value2 |
如果 value1 不等于 value2 返回 TRUE;如果 value1 或 value2 为 NULL 返回 UNKNOWN。 |
value1 > value2 |
如果 value1 大于 value2 返回 TRUE;如果 value1 或 value2 为 NULL 返回 UNKNOWN。 |
value1 >= value2 |
如果 value1 大于或等于 value2 返回 TRUE;如果 value1 或 value2 为 NULL 返回 UNKNOWN。 |
value1 < value2 |
如果 value1 小于 value2 返回 TRUE;如果 value1 或 value2 为 NULL 返回 UNKNOWN。 |
value1 <= value2 |
如果 value1 小于或等于 value2 返回 TRUE;如果 value1 或 value2 为 NULL 返回 UNKNOWN。 |
value IS NULL |
如果值为 NULL 返回 TRUE。 |
value IS NOT NULL |
如果值不为 NULL 返回 TRUE。 |
value1 BETWEEN [ ASYMMETRIC | SYMMETRIC ] value2 AND value3 |
默认或使用 ASYMMETRIC 关键字的情况下,如果 value1 大于等于 value2 且小于等于 value3 返回 TRUE。 使用 SYMMETRIC 关键字则 value1 在 value2 和 value3 之间返回 TRUE。 当 value2 或 value3 为 NULL 时,返回 FALSE 或 UNKNOWN。 例如 12 BETWEEN 15 AND 12 返回 FALSE; 12 BETWEEN SYMMETRIC 15 AND 12 返回 TRUE; 12 BETWEEN 10 AND NULL 返回 UNKNOWN; 12 BETWEEN NULL AND 10 返回 FALSE; 12 BETWEEN SYMMETRIC NULL AND 12 返回 UNKNOWN。 |
value1 NOT BETWEEN [ ASYMMETRIC | SYMMETRIC ] value2 AND value3 |
默认或使用 ASYMMETRIC 关键字的情况下,如果 value1 小于 value2 或大于 value3,则返回 TRUE。 使用 SYMMETRIC 关键字则 value1 不在 value2 和 value3 之间返回 TRUE。 当 value2 或 value3 为 NULL 时,返回 TRUE 或 UNKNOWN。 例如 12 NOT BETWEEN 15 AND 12 返回 TRUE; 12 NOT BETWEEN SYMMETRIC 15 AND 12 返回 FALSE; 12 NOT BETWEEN NULL AND 15 返回 UNKNOWN; 12 NOT BETWEEN 15 AND NULL 返回 TRUE; 12 NOT BETWEEN SYMMETRIC 12 AND NULL 返回 UNKNOWN。 |
string1 LIKE string2 [ ESCAPE char ] |
如果 string1 匹配 string2 返回 TRUE;如果 string1 或 string2 为 NULL 返回 UNKNOWN。 如果需要可以定义转义字符。尚不支持转义字符。 |
string1 NOT LIKE string2 [ ESCAPE char ] |
如果 string1 与 string2 不匹配返回 TRUE;如果 string1 或 string2 为 NULL 返回 UNKNOWN。 如果需要可以定义转义字符。尚不支持转义字符。 |
string1 SIMILAR TO string2 [ ESCAPE char ] |
如果 string1 匹配 SQL 正则表达式 string2 返回 TRUE;如果 string1 或 string2 为 NULL 返回 UNKNOWN。如果需要可以定义转义字符。尚不支持转义字符。 |
value1 IN (value2 [, value3]* ) |
在给定列表 (value2, value3, …) 中存在 value1 返回 TRUE。当列表包含 NULL,如果可以找到 value1 则返回 TRUE,否则返回 UNKNOWN。如果 value1 为 NULL 则始终返回 UNKNOWN。例如 4 IN (1, 2, 3) 返回 FALSE;1 IN (1, 2, NULL) 返回 TRUE;4 IN (1, 2, NULL) 返回 UNKNOWN。 |
value1 NOT IN (value2 [, value3]* ) |
在给定列表 (value2, value3, …) 中不存在 value1 返回 TRUE。当列表包含 NULL,如果可以找到 value1 则 返回 FALSE,否则返回 UNKNOWN。如果 value1 为 NULL,则始终返回 UNKNOWN。例如 4 NOT IN (1, 2, 3) 返回 TRUE;1 NOT IN (1, 2, NULL) 返回 FALSE;4 NOT IN (1, 2, NULL) 返回 UNKNOWN。 |
EXISTS (sub-query) |
如果子查询至少返回一行则返回 TRUE。 仅支持可以在 join 和分组操作中可以被重写的操作。对于流式查询,该操作在 join 和分组操作中被重写。根据输入行的数量计算查询结果所需的状态可能会无限增长。请提供具有有效保留间隔的查询配置,以防止状态过大。 |
value IN (sub-query) |
如果 value 等于子查询结果集中的一行则返回 TRUE。 |
value NOT IN (sub-query) |
如果 value 不包含于子查询返回的行则返回 TRUE。 |