更新时间:2024-04-19 GMT+08:00

比较函数

表1 比较函数

SQL函数

返回类型

描述

value1 = value2

BOOLEAN

如果 value1 等于 value2 返回 TRUE;

如果 value1 或者 value2 为 NULL 返回 UNKNOWN。

value1 <> value2

BOOLEAN

如果 value1 不等于 value2 返回 TRUE;

如果 value1 或 value2 为 NULL 返回 UNKNOWN。

value1 > value2

BOOLEAN

如果 value1 大于 value2 返回 TRUE;

如果 value1 或 value2 为 NULL 返回 UNKNOWN。

value1 >= value2

BOOLEAN

如果 value1 大于或等于 value2 返回 TRUE;

如果 value1 或 value2 为 NULL 返回 UNKNOWN。

value1 < value2

BOOLEAN

如果 value1 小于 value2 返回 TRUE;

如果 value1 或 value2 为 NULL 返回 UNKNOWN。

value1 <= value2

BOOLEAN

如果 value1 小于或等于 value2 返回 TRUE;

如果 value1 或 value2 为 NULL 返回 UNKNOWN。

value IS NULL

BOOLEAN

如果值为 NULL 返回 TRUE。

value IS NOT NULL

BOOLEAN

如果值不为 NULL 返回 TRUE。

value1 IS DISTINCT FROM value2

BOOLEAN

value1和value2的数据类型和值不完全相同返回 TRUE。

value1和value2的数据类型和值都相同返回 FALSE。

将 NULL 视为相同。

例如:

1 IS DISTINCT FROM NULL 返回 TRUE;

NULL IS DISTINCT FROM NULL 返回 FALSE。

value1 IS NOT DISTINCT FROM value2

BOOLEAN

value1和value2的数据类型和值都相同返回 TRUE。

value1和value2的数据类型和值不完全相同则返回 FALSE。

将 NULL 视为相同。

例如:

1 IS NOT DISTINCT FROM NULL 返回 FALSE;

NULL IS NOT DISTINCT FROM NULL 返回 TRUE。

value1 BETWEEN [ ASYMMETRIC | SYMMETRIC ] value2 AND value3

BOOLEAN

默认或使用 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

BOOLEAN

默认或使用 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 ]

BOOLEAN

如果 string1 匹配 string2 返回 TRUE;

如果 string1 或 string2 为 NULL 返回 UNKNOWN。

如果需要可以定义转义字符。尚不支持转义字符。

string1 NOT LIKE string2 [ ESCAPE char ]

BOOLEAN

如果 string1 与 string2 不匹配返回 TRUE;

如果 string1 或 string2 为 NULL 返回 UNKNOWN。

如果需要可以定义转义字符。尚不支持转义字符。

string1 SIMILAR TO string2 [ ESCAPE char ]

BOOLEAN

如果 string1 匹配 SQL 正则表达式 string2 返回 TRUE;

如果 string1 或 string2 为 NULL 返回 UNKNOWN。

如果需要可以定义转义字符。尚不支持转义字符。

string1 NOT SIMILAR TO string2 [ ESCAPE char ]

BOOLEAN

如果 string1 与 SQL 正则表达式 string2 不匹配返回 TRUE;

如果 string1 或 string2 为 NULL 返回 UNKNOWN。

如果需要可以定义转义字符。尚不支持转义字符。

value1 IN (value2 [, value3]* )

BOOLEAN

在给定列表 (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]* )

BOOLEAN

在给定列表 (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)

BOOLEAN

如果子查询至少返回一行则返回 TRUE。

仅支持可以在 join 和分组操作中可以被重写的操作。对于流式查询,该操作在 join 和分组操作中被重写。根据输入行的数量计算查询结果所需的状态可能会无限增长。

请提供具有有效保留间隔的查询配置,以防止状态过大。

value IN (sub-query)

BOOLEAN

如果 value 等于子查询结果集中的一行则返回 TRUE。

value NOT IN (sub-query)

BOOLEAN

如果 value 不包含于子查询返回的行则返回 TRUE。