比较函数
所有数据类型都可用关系运算符进行比较,比较函数返回一个 BOOLEAN 类型的值。
注意事项
-
被比较的两个数据类型必须是相同的数据类型或者是可以进行转换的类型。
-
double、real 和 float 值存在一定的精度差,因此在 Flink SQL 中不建议直接使用
=
对两个 double 或两个 float 类型的数据进行比较。
函数列表
函数 | 功能描述 | ||
---|---|---|---|
value1 = value2 |
若 value1 等于 value2,返回 TRUE,否则返回 FALSE。
|
||
value1 <> value2 |
若 value1 不等于 value2,返回 TRUE,否则返回 FALSE。 |
||
value1 > value2 |
若 value1 大于 value2,返回 TRUE,否则返回 FALSE。 |
||
value1 >= value2 |
若 value1 大于或等于 value2,返回 TRUE,否则返回 FALSE。 |
||
value1 < value2 |
若 value1 小于 value2,返回 TRUE,否则返回 FALSE。 |
||
value1 <= value2 |
若 value1 小于或者等于 value2,则返回 TRUE,否则返回 FALSE。 |
||
value1 IS NULL |
若 value1 为 NULL,返回 TRUE,否则返回 FALSE。 |
||
value1 IS NOT NULL |
若 value1 不为 NULL,返回 TRUE,否则返回 FALSE。 |
||
value1 IS DISTINCT FROM value2 |
若 value1 与 value2 不相等,返回 TRUE,否则返回 FALSE。NULL 视为相等。
|
||
value1 IS NOT DISTINCT FROM value2 |
若 value1 与 value2 相等,返回 TRUE,否则返回 FALSE。NULL 视为相等。
|
||
value1 BETWEEN [ASYMMETRIC | SYMMETRIC] value2 AND value3 |
若 value1 大于或等于 value2 且小于或等于 value3,返回 TRUE,否则返回 FALSE。当 value2 或 value3 为 NULL 时,返回 FALSE 或 UNKNOWN。
例如:
|
||
value1 NOT BETWEEN [ ASYMMETRIC | SYMMETRIC ] value2 AND value3 |
若 value1 小于 value2 或大于 value3,返回 TRUE,否则返回 FALSE。当 value2 或 value3 为 NULL 时,返回 TRUE 或 UNKNOWN。
|
||
string1 LIKE string2 [ ESCAPE char ] |
若 value1 与模式 value2 匹配,返回 TRUE。 |
||
string1 NOT LIKE string2 [ ESCAPE char ] |
若 value1 与模式 value2 不匹配,返回TRUE。 |
||
string1 SIMILAR TO string2 [ ESCAPE char ] |
若 value1 与正则表达式 value2 匹配,返回TRUE。 |
||
string1 NOT SIMILAR TO string2 [ ESCAPE char ] |
若 value1 与正则表达式 value2 不匹配,返回TRUE。 |
||
value1 IN (value2 [, value3]*) |
若 value1 在列表中,返回 TRUE。
|
||
value1 NOT IN (value2 [, value3]* ) |
若 value1 不在列表中,返回 TRUE。
|
||
EXISTS (sub-query) |
若 sub-query 返回至少一行,则返回 TRUE,否则返回 FALSE。 |
||
value IN (sub-query) |
若 sub-query 返回的结果中,有一条等于 value 的值,返回 TRUE,否则返回 FALSE。 |
||
value NOT IN (sub-query) |
若 sub-query 返回的结果中,没有等于 value 的值,返回 TRUE,否则返回 FALSE。 |