
# 范围函数
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
如果范围是空或者需要的界限是无穷的，lower和upper函数将返回null。lower_inc、upper_inc、lower_inf和upper_inf函数均对空范围返回false。
#### numrange(numeric, numeric, \[text\])
描述：表示一个范围。
返回类型：范围元素类型
示例：
```
gaussdb=# SELECT numrange(1.1,2.2) AS RESULT;
 result 
--------
[1.1,2.2)
(1 row)
gaussdb=# SELECT numrange(1.1,2.2, '()') AS RESULT;
 result 
--------
(1.1,2.2)
(1 row)
```
#### lower(anyrange)
描述：范围的下界。
返回类型：范围元素类型
示例：
```
gaussdb=# SELECT lower(numrange(1.1,2.2)) AS RESULT;
 result 
--------
    1.1
(1 row)
```
#### upper(anyrange)
描述：范围的上界
返回类型：范围元素类型
示例：
```
gaussdb=# SELECT upper(numrange(1.1,2.2)) AS RESULT;
 result 
--------
    2.2
(1 row)
```
#### isempty(anyrange)
描述：范围是否为空
返回类型：Boolean
示例：
```
gaussdb=# SELECT isempty(numrange(1.1,2.2)) AS RESULT;
 result 
--------
 f
(1 row)
```
#### lower_inc(anyrange)
描述：是否包含下界
返回类型：Boolean
示例：
```
gaussdb=# SELECT lower_inc(numrange(1.1,2.2)) AS RESULT;
 result 
--------
 t
(1 row)
```
#### upper_inc(anyrange)
描述：是否包含上界
返回类型：Boolean
示例：
```
gaussdb=# SELECT upper_inc(numrange(1.1,2.2)) AS RESULT;
 result 
--------
 f
(1 row)
```
#### lower_inf(anyrange)
描述：下界是否为无穷
返回类型：Boolean
示例：
```
gaussdb=# SELECT lower_inf('(,)'::daterange) AS RESULT;
 result 
--------
 t
(1 row)
```
#### upper_inf(anyrange)
描述：上界是否为无穷
返回类型：Boolean
示例：
```
gaussdb=# SELECT upper_inf('(,)'::daterange) AS RESULT;
 result 
--------
 t
(1 row)
```
#### elem_contained_by_range(anyelement, anyrange)
描述：判断元素是否在范围内。
返回类型：Boolean
示例：
```
gaussdb=# SELECT elem_contained_by_range('2', numrange(1.1,2.2));
 elem_contained_by_range
-------------------------
 t
(1 row)
```
#### in_range_int16_int16(int16, int16, int16, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int16_int16(1::int16, 1::int16, 1::int16, true, true);
 in_range_int16_int16 
----------------------
 f
(1 row)
gaussdb=# SELECT in_range_int16_int16(1::int16, 4::int16, 2::int16, true, true);
 in_range_int16_int16 
----------------------
 t
(1 row)
```
#### in_range_int8_int16(int8, int8, int16, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int8_int16(1::int8, 1::int8, 1::int16, true, true);
 in_range_int8_int16 
---------------------
 f
(1 row)
gaussdb=# SELECT in_range_int8_int16(1::int8, 4::int8, 2::int16, true, true);
 in_range_int8_int16 
---------------------
 t
(1 row)
```
#### in_range_int4_int16(int4, int4, int16, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int4_int16(1::int4, 1::int4, 1::int16, true, true);
 in_range_int4_int16 
---------------------
 f
(1 row)
gaussdb=# SELECT in_range_int4_int16(1::int4, 4::int4, 2::int16, true, true);
 in_range_int4_int16 
---------------------
 t
(1 row)
```
#### in_range_int2_int16(int2, int2, int16, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int2_int16(1::int2, 1::int2, 1::int16, true, true);
 in_range_int2_int16 
---------------------
 f
(1 row)
gaussdb=# SELECT in_range_int2_int16(1::int2, 4::int2, 2::int16, true, true);
 in_range_int2_int16 
---------------------
 t
```
#### in_range_int1_int16(int1, int1, int16, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
```
gaussdb=# SELECT in_range_int1_int16(1::int1, 1::int1, 1::int16, true, true);
 in_range_int1_int16 
---------------------
 f
(1 row)
gaussdb=# SELECT in_range_int1_int16(1::int1, 4::int1, 2::int16, true, true);
 in_range_int1_int16 
---------------------
 t
(1 row)
```
#### in_range_float8_float8(float8, float8, float8, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_float8_float8(1.0::float8, 1.9::float8, 1.0::float8, true, true);
 in_range_float8_float8 
------------------------
 f
(1 row)
```
#### in_range_float4_float8(float4, float4, float8, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_float4_float8(1.0::float4, 1.9::float4, 1.0::float8, true, true);
 in_range_float4_float8 
------------------------
 f
(1 row)
```
#### in_range_numeric_numeric(numeric, numeric, numeric, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_numeric_numeric(1.0::numeric(10,4), 1.9::numeric(10,4), 1.0::numeric(10,4), true, true);
 in_range_numeric_numeric 
--------------------------
 f
(1 row)
```
#### in_range_interval_interval(interval, interval, interval, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_interval_interval(interval '13' hour, interval '10' hour, interval '3' hour, false, true);
 in_range_interval_interval 
----------------------------
 t
(1 row)
```
#### in_range_timestamp_interval(timestamp, timestamp, interval, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
```
gaussdb=# SELECT in_range_timestamp_interval('12-10-2010 11:25:00', '10-11-2010 11:26:00', interval '60' day, false, true);
 in_range_timestamp_interval 
-----------------------------
 t
(1 row)
```
#### in_range_timestamptz_interval(timestamptz, timestamptz, interval, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_timestamptz_interval('12-10-2010 11:25:00+00', '10-11-2010 11:26:00+00', interval '60' day, false, true);
 in_range_timestamptz_interval 
-------------------------------
 t
(1 row)
```
#### in_range_time_interval(time, time, interval, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_time_interval('00:00:00', '12:00:00', interval '13' hour, true, true);
 in_range_time_interval 
------------------------
 f
(1 row)
```
#### in_range_timetz_interval(timetz, timetz, interval, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_timetz_interval('00:00:00+00', '12:00:00+00', interval '13' hour, true, true);
 in_range_timetz_interval 
--------------------------
 f
(1 row)
```
#### in_range_int8_numeric(int8, int8, numeric, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int8_numeric(1::int8, 2::int8, 0.9::numeric(10,4), true, true);
 in_range_int8_numeric 
-----------------------
 t
(1 row)
```
#### in_range_int4_numeric(int4, int4, numeric, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int4_numeric(1::int4, 2::int4, 0.9::numeric(10,4), true, true);
 in_range_int4_numeric 
-----------------------
 t
(1 row)
```
#### in_range_int2_numeric(int2, int2, numeric, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int2_numeric(1::int2, 2::int2, 0.9::numeric(10,4), true, true);
 in_range_int2_numeric 
-----------------------
 t
(1 row)
```
#### in_range_int1_numeric(int1, int1, numeric, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int1_numeric(1::int1, 2::int1, 0.9::numeric(10,4), true, true);
 in_range_int1_numeric 
-----------------------
 t
(1 row)
```
#### in_range_numeric_float4(numeric, numeric, float4, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_numeric_float4(1.0::numeric(10,4), 1.9::numeric(10,4), 1.0::float4, true, true);
 in_range_numeric_float4 
-------------------------
 f
(1 row)
```
#### in_range_numeric_float8(numeric, numeric, float8, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_numeric_float8(1.0::numeric(10,4), 1.9::numeric(10,4), 1.0::float8, true, true);
 in_range_numeric_float8 
-------------------------
 f
(1 row)
```
#### in_range_int8_float8(int8, int8, float8, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int8_float8(1::int8, 2::int8, 0.9::float8, true, true);
 in_range_int8_float8 
----------------------
 t
(1 row)
```
#### in_range_int4_float8(int4, int4, float8, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int4_float8(1::int4, 2::int4, 0.9::float8, true, true);
 in_range_int4_float8 
----------------------
 t
(1 row)
```
#### in_range_int2_float8(int2, int2, float8, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int2_float8(1::int2, 2::int2, 0.9::float8, true, true);
 in_range_int2_float8 
----------------------
 t
(1 row)
```
#### in_range_int1_float8(int1, int1, float8, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int1_float8(1::int1, 2::int1, 0.9::float8, true, true);
 in_range_int1_float8 
----------------------
 t
(1 row)
```
#### in_range_float8_int16(float8, float8, int16, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_float8_int16(1.0::float8, 1.9::float8, 1::int16, true, true);
 in_range_float8_int16 
-----------------------
 f
(1 row)
```
#### in_range_float4_int16(float4, float4, int16, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_float4_int16(1.0::float4, 1.9::float4, 1::int16, true, true);
 in_range_float4_int16 
-----------------------
 f
(1 row)
```
#### in_range_float8_int8(float8, float8, int8, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_float8_int8(1.0::float8, 1.9::float8, 1::int8, true, true);
 in_range_float8_int8 
----------------------
 f
(1 row)
```
#### in_range_float4_int8(float4, float4, int8, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_float4_int8(1.0::float4, 1.9::float4, 1::int8, true, true);
 in_range_float4_int8 
----------------------
 f
(1 row)
```
#### in_range_float8_int4(float8, float8, int4, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_float8_int4(1.0::float8, 1.9::float8, 1::int4, true, true);
 in_range_float8_int4 
----------------------
 f
(1 row)
```
#### in_range_float4_int4(float4, float4, int4, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_float4_int4(1.0::float4, 1.9::float4, 1::int4, true, true);
 in_range_float4_int4 
----------------------
 f
(1 row)
```
#### in_range_float8_int2(float8, float8, int2, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_float8_int2(1.0::float8, 1.9::float8, 1::int2, true, true);
 in_range_float8_int2 
----------------------
 f
(1 row)
```
#### in_range_float4_int2(float4, int2, int2, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_float4_int2(1.0::float4, 1.9::float4, 1::int2, true, true);
 in_range_float4_int2 
----------------------
 f
(1 row)
```
#### in_range_float8_int1(float8, float8, int1, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_float8_int1(1.0::float8, 1.9::float8, 1::int1, true, true);
 in_range_float8_int1 
----------------------
 f
(1 row)
```
#### in_range_float4_int1(float4, float4, int1, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_float4_int1(1.0::float4, 1.9::float4, 1::int1, true, true);
 in_range_float4_int1 
----------------------
 f
(1 row)
```
#### in_range_float8_float4(float8, float8, float4, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_float8_float4(1.0::float8, 1.9::float8, 1.0::float4, true, true);
 in_range_float8_float4 
------------------------
 f
(1 row)
```
#### in_range_float4_float4(float4, float4, float4, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_float4_float4(1.0::float4, 1.9::float4, 1.0::float4, true, true);
 in_range_float4_float4 
------------------------
 f
(1 row)
```
#### in_range_float8_numeric(float8, float8, numeric, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_float8_numeric(1.0::float8, 1.9::float8, 1.0::numeric(10,4), true, true);
 in_range_float8_numeric 
-------------------------
 f
(1 row)
```
#### in_range_float4_numeric(float4, float4, numeric, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_float4_numeric(1.0::float4, 1.9::float4, 1.0::numeric(10,4), true, true);
 in_range_float4_numeric 
-------------------------
 f
(1 row)
```
#### in_range_numeric_int16(numeric, numeric, int16, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_numeric_int16(1.0::numeric(10,4), 1.9::numeric(10,4), 1.0::int16, true, true);
 in_range_numeric_int16 
------------------------
 f
(1 row)
```
#### in_range_numeric_int8(numeric, numeric, int8, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_numeric_int8(1.0::numeric(10,4), 1.9::numeric(10,4), 1.0::int8, true, true);
 in_range_numeric_int8 
-----------------------
 f
(1 row)
```
#### in_range_numeric_int4(numeric, numeric, int4, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_numeric_int4(1.0::numeric(10,4), 1.9::numeric(10,4), 1.0::int4, true, true);
 in_range_numeric_int4 
-----------------------
 f
(1 row)
```
#### in_range_numeric_int1(numeric, numeric, int1, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_numeric_int1(1.0::numeric(10,4), 1.9::numeric(10,4), 1.0::int1, true, true);
 in_range_numeric_int1 
-----------------------
 f
(1 row)
```
#### in_range_int8_int8(int8, int8, int8, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int8_int8(1::int8, 1::int8, 1::int8, true, true);
 in_range_int8_int8 
--------------------
 f
(1 row)
```
#### in_range_int4_int8(int4, int4, int8, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int4_int8(1::int4, 1::int4, 1::int8, true, true);
 in_range_int4_int8 
--------------------
 f
(1 row)
```
#### in_range_int2_int8(int2, int2, int8, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int2_int8(1::int2, 1::int2, 1::int8, true, true);
 in_range_int2_int8 
--------------------
 f
(1 row)
```
#### in_range_int1_int8(int1, int1, int8, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int1_int8(1::int1, 1::int1, 1::int8, true, true);
 in_range_int1_int8 
--------------------
 f
(1 row)
```
#### in_range_int8_int4(int8, int8, int4, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int8_int4(1::int8, 1::int8, 1::int4, true, true);
 in_range_int8_int4 
--------------------
 f
(1 row)
```
#### in_range_int4_int4(int4, int4, int4, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int4_int4(1::int4, 1::int4, 1::int4, true, true);
 in_range_int4_int4 
--------------------
 f
(1 row)
```
#### in_range_int2_int4(int2, int2, int4, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int2_int4(1::int2, 1::int2, 1::int4, true, true);
 in_range_int2_int4 
--------------------
 f
(1 row)
```
#### in_range_int1_int4(int1, int1, int4, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int1_int4(1::int1, 1::int1, 1::int4, true, true);
 in_range_int1_int4 
--------------------
 f
(1 row)
```
#### in_range_int8_int2(int8, int8, int2, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int8_int2(1::int8, 1::int8, 1::int2, true, true);
 in_range_int8_int2 
--------------------
 f
(1 row)
```
#### in_range_int4_int2(int4, int4, int2, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int4_int2(1::int4, 1::int4, 1::int2, true, true);
 in_range_int4_int2 
--------------------
 f
(1 row)
```
#### in_range_int2_int2(int2, int2, int2, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int2_int2(1::int2, 1::int2, 1::int2, true, true);
 in_range_int2_int2 
--------------------
 f
(1 row)
```
#### in_range_int1_int2(int1, int1, int2, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int1_int2(1::int1, 1::int1, 1::int2, true, true);
 in_range_int1_int2 
--------------------
 f
(1 row)
```
#### in_range_int8_int1(int8, int8, int1, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int8_int1(1::int8, 1::int8, 1::int1, true, true);
 in_range_int8_int1 
--------------------
 f
(1 row)
```
#### in_range_int4_int1(int4, int4, int1, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int4_int1(1::int4, 1::int4, 1::int1, true, true);
 in_range_int4_int1 
--------------------
 f
(1 row)
```
#### in_range_int2_int1(int2, int2, int1, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int2_int1(1::int2, 1::int2, 1::int1, true, true);
 in_range_int2_int1 
--------------------
 f
(1 row)
```
#### in_range_int1_int1(int1, int1, int1, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int1_int1(1::int1, 1::int1, 1::int1, true, true);
 in_range_int1_int1 
--------------------
 f
(1 row)
```
#### in_range_int8_float4(int8, int8, float4, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int8_float4(1::int8, 2::int8, 0.9::float4, true, true);
 in_range_int8_float4 
----------------------
 t
(1 row)
```
#### in_range_int4_float4(int4, int4, float4, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int4_float4(1::int4, 2::int4, 0.9::float4, true, true);
 in_range_int4_float4 
----------------------
 t
(1 row)
```
#### in_range_int2_float4(int2, int2, float4, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int2_float4(1::int2, 2::int2, 0.9::float4, true, true);
 in_range_int2_float4 
----------------------
 t
(1 row)
```
#### in_range_int1_float4(int1, int1, float4, boolean, boolean)
描述：判断第一个参数，是否在第二个参数加/减第三个参数范围内。
参数说明：
- 第一个参数：需要被判断是否在范围内的数。
- 第二个参数：当前范围的起始值。
- 第三个参数：范围值，必须为正数。
- 第四个参数：当前操作为减操作或加操作。
  - TRUE：第二个参数减第三个参数再与第一个参数比较大小。
  
  - FALSE：第二个参数加第三个参数再与第一个参数比较大小。
   
- 第五个参数：第二个参数和第三个参数的运算结果与第一个参数做比较。
  - TRUE：判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE，反之为FALSE。
  
  - FALSE：判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE，反之为FALSE。
   
返回类型：Boolean
示例：
```
gaussdb=# SELECT in_range_int1_float4(1::int1, 2::int1, 0.9::float4, true, true);
 in_range_int1_float4 
----------------------
 t
(1 row)
```
