更新时间:2026-10-21 GMT+08:00
分享

比较操作符

大部分数据类型都可用比较操作符进行比较,并返回一个布尔类型的值。

比较操作符均为双目操作符,被比较的两个数据类型需要为相同的数据类型或者是可以进行隐式转换的类型。

GaussDB提供的比较操作符请参见表1。

表1 比较操作符

操作符

描述

<

小于

>

大于

<=

小于或等于

>=

大于或等于

=

等于

<> 或 !=或^=

不等于

  • 当比较操作符(<=、<>、>=、^=)中间存在空格时,也可以识别成没有空格进行正常操作。!=中间存在空格时,!会被识别为阶乘,可能会导致结果与预期不一致。
  • 比较操作符可以用于所有相关的数据类型。所有比较操作符都是双目操作符,返回布尔类型数值。不等号的计算优先级高于等号。当输入的数据类型不同且无法隐式转换时,比较操作将会失败。例如像1<2<3这样的表达式是非法的,因为布尔值和3之间无法用小于号(<)比较。
  • 上述每种操作符在PG_PROC系统表中都有对应的函数,如果其对应的函数的proleakproof属性值为f,则表示该函数不是防数据泄露的。如果用户仅拥有视图权限而未获得该视图所对应表的权限,在查询该视图时,可能存在查询计划不是最优的问题。
  • 不支持XML类型数据。
  • 如果被比较的两个数据类型为不同的数据类型或无法进行隐式转换的类型,会先将两个数据类型先隐式转换为第三种可转换的数据类型,再进行比较,此时比较结果可能不具有实际意义。

    示例:

    1
    2
    3
    4
    5
    6
    gaussdb=# EXPLAIN verbose SELECT to_datea('2010-10-10','yyyy-mm-dd') > 1.5;
                                         QUERY PLAN
    ------------------------------------------------------------------------------------
     Result  (cost=0.00..0.02 rows=1 width=0)
       Output: ((to_datea('2010-10-10'::text, 'yyyy-mm-dd'::text))::text > '1.5'::text)
    (2 rows)
    

相关文档