范围函数和操作符

云原生数据仓库 AnalyticDB PostgreSQL 版兼容PostgreSQL中的范围函数和操作符。本文简单列举云原生数据仓库 AnalyticDB PostgreSQL 版兼容的范围函数和操作符及用法示例。

PostgreSQL中范围函数和操作符的详细使用方法,请参见PostgreSQL官方文档:范围函数和操作符

范围操作符

简介

范围操作符用于表示范围,例如@>&&。范围操作符直接应用于表达式,可以直接获取范围内的数据元素。

用途

范围操作符主要用于范围的比较、限制、定义等。

详情和示例

操作符

描述

使用示例

示例结果

=

等于。

int4range(1,5) = '[1,4]'::int4range

t

<>

不等于。

numrange(1.1,2.2) <> numrange(1.1,2.3)

t

<

小于。

int4range(1,10) < int4range(2,3)

t

>

大于。

int4range(1,10) > int4range(1,5)

t

<=

小于或等于。

numrange(1.1,2.2) <= numrange(1.1,2.2)

t

>=

大于或等于。

numrange(1.1,2.2) >= numrange(1.1,2.0)

t

@>

包含范围。

int4range(2,4) @> int4range(2,3)

t

@>

包含元素。

'[2011-01-01,2011-03-01)'::tsrange @> '2011-01-10'::timestamp

t

<@

范围被包含。

int4range(2,4) <@ int4range(1,7)

t

<@

元素被包含。

42 <@ int4range(1,7)

f

&&

重叠(有公共点)。

int8range(3,7) && int8range(4,12)

t

<<

左边的范围严格小于右边的范围。

int8range(1,10) << int8range(100,110)

t

>>

右边的范围严格小于左边的范围。

int8range(50,60) >> int8range(20,30)

t

&<

不超过右边范围上界。

int8range(1,20) &< int8range(18,20)

t

&>

不超过左边范围上界。

int8range(7,20) &> int8range(5,10)

t

-|-

相邻。

numrange(1.1,2.2) -|- numrange(2.2,3.3)

t

+

并。

numrange(5,15) + numrange(10,20)

[5,20)

*

交。

int8range(5,15) * int8range(10,20)

[10,15)

-

差。

int8range(5,15) - int8range(10,20)

[5,10)

范围函数

简介

范围函数是可以用来定义特定范围的函数。通过范围函数可以来限制范围、判断某个值是否在范围限制内。

用途

范围函数主要用来定义范围的上下限,以达到限制范围的目的。

详情和示例

函数

返回类型

描述

使用示例

示例结果

lower(anyrange)

范围的元素类型。

范围的下限。

lower(numrange(1.1,2.2))

1.1

upper(anyrange

范围的元素类型。

范围的上限。

upper(numrange(1.1,2.2))

2.2

isempty(anyrange

boolean

范围是否为空。

isempty(numrange(1.1,2.2))

false

lower_inc(anyrange

boolean

下限是否被包含在内。

lower_inc(numrange(1.1,2.2))

true

upper_inc(anyrange

boolean

上限是否被包含在内。

upper_inc(numrange(1.1,2.2))

false

lower_inf(anyrange)

boolean

下限是否无限。

lower_inf('(,)'::daterange)

true

upper_inf(anyrange)

boolean

上限是否无限。

upper_inf('(,)'::daterange)

true

range_merge(anyrange,anyrange)

anyrange

包含两个给定范围的最小范围。

range_merge('[1,2)'::int4range, '[3,4)'::int4range)

[1,4)