绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
函数和操作符-范围函数和操作符
2020-01-15 15:49:24

范围操作符

  • =

    描述:等于

    示例:

    SELECT int4range(1,5) = '[1,4]'::int4range AS RESULT;
    result
    --------
    t
    (1 row)
  • <>

    描述:不等于

    示例:

    SELECT numrange(1.1,2.2) <> numrange(1.1,2.3) AS RESULT;
    result
    --------
    t
    (1 row)
  • <

    描述:小于

    示例:

    SELECT int4range(1,10) < int4range(2,3) AS RESULT;
    result
    --------
    t
    (1 row)
  • >

    描述:大于

    示例:

    SELECT int4range(1,10) > int4range(1,5) AS RESULT;
    result
    --------
    t
    (1 row)
  • <=

    描述:小于或等于

    示例:

    SELECT numrange(1.1,2.2) <= numrange(1.1,2.2) AS RESULT;
    result
    --------
    t
    (1 row)
  • >=

    描述:大于或等于

    示例:

    SELECT numrange(1.1,2.2) >= numrange(1.1,2.0) AS RESULT;
    result
    --------
    t
    (1 row)
  • @>

    描述:包含范围

    示例:

    SELECT int4range(2,4) @> int4range(2,3) AS RESULT;
    result
    --------
    t
    (1 row)
  • @>

    描述:包含元素

    示例:

    SELECT '[2011-01-01,2011-03-01)'::tsrange @> '2011-01-10'::timestamp AS RESULT;
    result
    --------
    t
    (1 row)
  • <@

    描述:范围包含于

    示例:

    SELECT int4range(2,4) <@ int4range(1,7) AS RESULT;
    result
    --------
    t
    (1 row)
  • <@

    描述:元素包含于

    示例:

    SELECT 42 <@ int4range(1,7) AS RESULT;
    result
    --------
    f
    (1 row)
  • &&

    描述:重叠(有共同点)

    示例:

    SELECT int8range(3,7) && int8range(4,12) AS RESULT;
    result
    --------
    t
    (1 row)
  • <<

    描述:范围值是否比另一个范围值的小值还小(没有交集)

    示例:

    SELECT int8range(1,10) << int8range(100,110) AS RESULT;
    result
    --------
    t
    (1 row)
  • >>

    描述:范围值是否比另一个范围值的大值还大(没有交集)

    示例:

    SELECT int8range(50,60) >> int8range(20,30) AS RESULT;
    result
    --------
    t
    (1 row)
  • &<

    描述:范围值的大值是否不超过另一个范围值的大值。

    示例:

    SELECT int8range(1,20) &< int8range(18,20) AS RESULT;
    result
    --------
    t
    (1 row)
  • &>

    描述:范围值的小值是否不小于另一个范围值的小值。

    示例:

    SELECT int8range(7,20) &> int8range(5,10) AS RESULT;
    result
    --------
    t
    (1 row)
  • -|-

    描述:相邻

    示例:

    SELECT numrange(1.1,2.2) -|- numrange(2.2,3.3) AS RESULT;
    result
    --------
    t
    (1 row)
  • +

    描述:并集

    示例:

    SELECT numrange(5,15) + numrange(10,20) AS RESULT;
    result
    --------
    [5,20)
    (1 row)
  • *

    描述:交集

    示例:

    SELECT int8range(5,15) * int8range(10,20) AS RESULT;
    result
    ---------
    [10,15)
    (1 row)
  • -

    描述:差集

    示例:

    SELECT int8range(5,15) - int8range(10,20) AS RESULT;
    result
    --------
    [5,10)
    (1 row)

简单的比较操作符<,>,<=和>=先比较下界,只有下界相等时才比较上界。

<<、>>和-|-操作符当包含空范围时也会返回false;也就是,不认为空范围在其他范围之前或之后。

并集和差集操作符的执行结果无法包含两个不相交的子范围。

范围函数

  • lower(anyrange)

    描述:范围的下界

    返回类型:范围元素类型

    示例:

    SELECT lower(numrange(1.1,2.2)) AS RESULT;
    result
    --------
    1.1
    (1 row)
  • upper(anyrange)

    描述:范围的上界

    返回类型:范围元素类型

    示例:

    SELECT upper(numrange(1.1,2.2)) AS RESULT;
    result
    --------
    2.2
    (1 row)
  • isempty(anyrange)

    描述:范围是否为空

    返回类型:boolean

    示例:

    SELECT isempty(numrange(1.1,2.2)) AS RESULT;
    result
    --------
    f
    (1 row)
  • lower_inc(anyrange)

    描述:是否包含下界

    返回类型:boolean

    示例:

    SELECT lower_inc(numrange(1.1,2.2)) AS RESULT;
    result
    --------
    t
    (1 row)
  • upper_inc(anyrange)

    描述:是否包含上界

    返回类型:boolean

    示例:

    SELECT upper_inc(numrange(1.1,2.2)) AS RESULT;
    result
    --------
    f
    (1 row)
  • lower_inf(anyrange)

    描述:下界是否为无穷

    返回类型:boolean

    示例:

    SELECT lower_inf('(,)'::daterange) AS RESULT;
    result
    --------
    t
    (1 row)
  • upper_inf(anyrange)

    描述:上界是否为无穷

    返回类型:boolean

    示例:

    SELECT upper_inf('(,)'::daterange) AS RESULT;
    result
    --------
    t
    (1 row)

如果范围是空或者需要的界限是无穷的,lower和upper函数将返回null。lower_inc、upper_inc、lower_inf和upper_inf函数均对空范围返回false。

分享好友

分享这个小栈给你的朋友们,一起进步吧。

GaussDB_数据库
创建时间:2020-01-06 16:21:44
华为GaussDB数据库小栈
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • GaussDB_数据库
    专家
戳我,来吐槽~