
# 比较函数
安全云脑SecMaster SQL语法支持的比较函数如下表所示：
表1SecMaster SQL语法支持的比较函数 
| 函数                                                                 | 函数功能说明                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|
| 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。                                                                                                                                                                                                                                                                                                                    |
| 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。                                                                                                                                                                                                                                                                                                                                                        |
   
