比较函数

最近更新时间:2020-09-16 17:05:36

比较函数的函数名和功能描述如下:

函数名 功能描述
value1 = value2
  • 比较 value1 和 value2 是否相等,如果相等则返回 TRUE,如果不相等则返回 FALSE。
  • NULL 与任何值比较的结果均为 NULL,在 WHERE 条件中会被当作 FALSE。因此请使用 IS NULL 而不是 = NULL 来与 NULL 进行比较。
  • = 和 IS NOT DISTINCT FROM 的区别主要在于对 NULL 值的处理的方式不同。
  • 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。
    value IS NULL 如果 value 为 NULL 则返回 TRUE,否则返回 FALSE。
    value IS NOT NULL 如果 value 不为 NULL 则返回 TRUE,否则返回 FALSE。
    value1 IS DISTINCT FROM value2 如果两个值不等(所有 NULL 值视为彼此相等),则返回 TRUE,否则返回 FALSE。
    value1 IS NOT DISTINCT FROM value2 如果两个值相等(所有 NULL 值视为彼此相等),则返回 TRUE,否则返回 FALSE。
    value1 BETWEEN [ASYMMETRIC | SYMMETRIC ] value2 AND value3
  • 默认行为是 ASYMMETRIC,表示若 value1 大于等于 value2 且小于等于 value3,则返回 TRUE,否则返回 FALSE。
  • 如果显式指明 SYMMETRIC,则 value2 和 value3 的顺序可以相互交换而不影响结果。
  • value1 NOT BETWEEN value2 AND value3 如果 value1 小于 value2 或者大于 value3,则返回 TRUE,否则返回 FALSE。
    string1 LIKE string2 如果 string1 符合 string2 表示的 pattern 则返回 TRUE,否则返回 FALSE。
    string1 NOT LIKE string2 如果 string1 不符合 string2 表示的 pattern 则返回 TRUE,否则返回 FALSE。
    string1 SIMILAR TO string2 如果 string1 符合 string2 表示的正则表达式,则返回 TRUE,否则返回 FALSE。
    string1 NOT SIMILAR TO string2 如果 string1 不符合 string2 表示的正则表达式,则返回 TRUE,否则返回 FALSE。
    value IN (listItem [, listItem]* )
  • 如果 value 处于 IN 后面的值列表中,则返回 TRUE。该语句等价于多个 OR 表达式的连接。
  • 如果值列表中包含 NULL,则找不到时会返回 NULL,否则找不到时返回 FALSE。
  • 如果 value 是 NULL,则结果永远为 NULL。
  • value NOT IN (listItem, [, listItem]*) 如果 value 不在 IN 后的值列表中,则返回 TRUE,否则返回 FALSE。
    EXISTS (某个子查询)
  • 如果子查询返回至少一行,则返回 TRUE,否则返回 FALSE。
  • 该查询对内存压力较大,请谨慎使用。
  • value IN (某个子查询)
  • 如果子查询返回的多行结果中,有一条等于 value 的值,则返回 TRUE,否则返回 FALSE。
  • 该查询对内存压力较大,请谨慎使用。
  • value NOT IN (某个子查询)
  • 如果子查询返回的多个结果中,没有一条等于 value,则返回 TRUE,否则返回 FALSE。
  • 该查询对内存压力较大,请谨慎使用。