举报投诉联系我们 手机版 热门标签 编程学
您的位置:编程学 > PostgreSQL 范围函数和运算符

PostgreSQL 范围函数和运算符

2023-04-13 13:18

 PostgreSQL 范围函数和运算符

范围类型的概述可参见 第 8.17 节 。

表 9.53显示了范围类型的专用操作符。除此之外,表 9.1中所示的常用比较操作符也适用于范围类型。 比较操作符首先按范围下界排序,只有当它们相等时才比较上界。 这通常不会导致有用的总体排序,但提供的操作符允许在范围上构造惟一索引。

表 9.53. 范围操作符

操作符

描述

例子

anyrange @> anyrangeboolean

第一个范围中包含第二个(范围)吗?

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

anyrange @> anyelementboolean

范围是否包含元素?

"[2011-01-01,2011-03-01)"::tsrange @> "2011-01-10"::timestampt

anyrange <@ anyrangeboolean

第一个范围包含在第二个(范围)中吗?

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

anyelement <@ anyrangeboolean

元素是否包含在范围内?

42 <@ int4range(1,7)f

anyrange && anyrangeboolean

范围是否重叠,也就是说,是否有相同的元素?

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

anyrange << anyrangeboolean

第一个范围是否严格地在第二个(范围)的左侧?

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

anyrange >> anyrangeboolean

第一个范围是否严格符合第二个(范围)?

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

anyrange &< anyrangeboolean

第一个范围是否没有扩展到第二个(范围)的右侧?

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

anyrange &> anyrangeboolean

第一个范围是否没有扩展到第二个(范围)的左侧?

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

anyrange -|- anyrangeboolean

范围是相邻的么?

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

anyrange + anyrangeanyrange

计算范围的并集。范围必须重叠或相邻,这样的并集就是一个单一的范围(请参见range_merge())。

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

anyrange * anyrangeanyrange

计算范围的交集。

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

anyrange - anyrangeanyrange

计算范围的差异。第二个范围必须不能包含在第一个(范围)中,以使差异不是一个单一的范围。

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


当涉及一个空范围时,左部/右部/相邻操作符总是返回假;即一个空范围被认为不在任何其他范围前面或者后面。

表 9.54 显示可用于范围类型的函数。

表 9.54. 范围函数

函数

描述

例子

lower ( anyrange ) → anyelement

提取范围的下界(如果范围为空或下界为无限,则为NULL)。

lower(numrange(1.1,2.2))1.1

upper ( anyrange ) → anyelement

提取范围的上限(如果范围为空或上限为无限,则为NULL)。

upper(numrange(1.1,2.2))2.2

isempty ( anyrange ) → boolean

范围为空吗?

isempty(numrange(1.1,2.2))f

lower_inc ( anyrange ) → boolean

范围的下界是否包含在内?

lower_inc(numrange(1.1,2.2))t

upper_inc ( anyrange ) → boolean

范围的上界是否包含在内?

upper_inc(numrange(1.1,2.2))f

lower_inf ( anyrange ) → boolean

范围的下界是无限的吗?

lower_inf("(,)"::daterange)t

upper_inf ( anyrange ) → boolean

范围的上界是无限的吗?

upper_inf("(,)"::daterange)t

range_merge ( anyrange, anyrange ) → anyrange

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

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


lower_incupper_inclower_inf、 和 upper_inf 函数对空范围(empty range)都返回假(false)。


阅读全文
以上是编程学为你收集整理的 PostgreSQL 范围函数和运算符全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
  •  PostgreSQL CREATE TRANSFORM

    PostgreSQL CREATE TRANSFORM

    2023-05-11

    CREATE TRANSFORM — 定义一个新的转换大纲CREATE [ OR REPLACE ] TRANSFORM FOR type_name LANGUAGE lang_name (FROM SQL W...

  •  PostgreSQL DROP DATABASE

    PostgreSQL DROP DATABASE

    2023-05-18

    DROP DATABASE — 移除一个数据库大纲DROP DATABASE [ IF EXISTS ] name [ [ WITH ] ( option [, ...] ) ]其中选项 可以是:FORCE...

  •  PostgreSQL DROP STATISTICS

    PostgreSQL DROP STATISTICS

    2023-04-17

    DROP STATISTICS — 删除扩展统计 大纲DROP STATISTICS [ IF EXISTS ] name [, ...] 描述 DROP STATISTICS删除数据库中的统计对...

  •  XSL-FO 流

    XSL-FO 流

    2023-04-10 XSL-FO教程

    XSL-FO 流在 XSL-FO 中,你应该如何填充页面的内容呢?本节解答了这个问题。XSL-FO 页面使用来自 fo:flow 元素的数据进行填充。X...

  •  XSL-FO basic-link 对象

    XSL-FO basic-link 对象

    2023-05-23 XSL-FO教程

    XSL-FO basic-link 对象XSL-FO 参考手册本节介绍的是 XSL-FO 中的 basic-link对象,你将了解该对象的定义、语法以及属性。 定义...

© 2024 编程学 bianchengxue.com 版权所有 联系我们
桂ICP备19012293号-7 返回底部