更新时间:2026-04-10 GMT+08:00

范围函数

范围函数用于定义范围的上下限以及判断某个值是否在范围限制内。

lower(anyrange)

描述:获取范围的下界。如果范围是空或者下界为无限,则返回null。

返回类型:范围元素类型

示例:

1
2
3
4
5
SELECT lower(numrange(1.1,2.2)) AS RESULT;
 result 
--------
    1.1
(1 row)

upper(anyrange)

描述:获取范围的上界。如果范围是空或者上界为无限,则返回null。

返回类型:范围元素类型

示例:

1
2
3
4
5
SELECT upper(numrange(1.1,2.2)) AS RESULT;
 result 
--------
    2.2
(1 row)

isempty(anyrange)

描述:判断范围是否为空。

返回类型:boolean

示例:

1
2
3
4
5
SELECT isempty(numrange(1.1,2.2)) AS RESULT;
 result 
--------
 f
(1 row)

lower_inc(anyrange)

描述:判断范围的下界是否被包含在内。

返回类型:boolean

示例:

1
2
3
4
5
SELECT lower_inc(numrange(1.1,2.2)) AS RESULT;
 result 
--------
 t
(1 row)

upper_inc(anyrange)

描述:判断范围的上界是否被包含在内。

返回类型:boolean

示例:

numrange(1.1, 2.2)默认使用左闭右开[1.1, 2.2) 的形式。上界(2.2)由于默认是不包含的,所以返回false。

1
2
3
4
5
SELECT upper_inc(numrange(1.1,2.2)) AS RESULT;
 result 
--------
 f
(1 row)

lower_inf(anyrange)

描述:判断范围的下界是否为无限。

返回类型:boolean

示例:

1
2
3
4
5
SELECT lower_inf('(,)'::daterange) AS RESULT;
 result 
--------
 t
(1 row)

upper_inf(anyrange)

描述:判断范围的上界是否为无限。

返回类型:boolean

示例:

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

lower_inc、upper_inc、lower_inf和upper_inf函数均对空范围返回false。