PostgreSQL 10.1 手册_部分 II. SQL 语言_第 9 章 函数和操作符_9.19. 范围函数和操作符

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: 9.19. 范围函数和操作符 范围类型的概述请见第 8.17 节。 表 9.50展示了范围类型可用的操作符。 表 9.50. 范围操作符 操作符 描述 例子 结果 = 等于 int4range(1,5) = '[1,4]'::int4range t <> 不等于 numrange(1.

9.19. 范围函数和操作符

范围类型的概述请见第 8.17 节

表 9.50展示了范围类型可用的操作符。

表 9.50. 范围操作符

操作符 描述 例子 结果
= 等于 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)

简单比较操作符<、 ><=和 >=首先比较下界,并且只有在下界相等时才比较上界。这些比较通常对范围不怎么有用,但是还是提供它们以便能够在范围上构建 B树索引。

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

如果结果范围可能需要包含两个分离的子范围,并和差操作符将会失败,因为这样的范围无法被表示。

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

表 9.51. 范围函数

函数 返回类型 描述 例子 结果
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(anyrangeanyrange) anyrange 最小范围其中包含两个给定范围 range_merge('[1,2)'::int4range, '[3,4)'::int4range) [1,4)

如果范围为空或者被请求的界是无限的,lowerupper函数返回空值。函数lower_incupper_inclower_infupper_inf对一个空范围全部返回假。

本文转自PostgreSQL中文社区,原文链接:9.19. 范围函数和操作符

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
4月前
|
存储 SQL 关系型数据库
PolarDB这个sql行存和列存性能差别好大 ,为什么?
PolarDB这个sql行存和列存性能差别好大 ,为什么?
33 0
|
1月前
|
SQL 关系型数据库 分布式数据库
在PolarDB中,如果慢SQL导致了CPU升高,进而又产生了更多的慢SQL
【2月更文挑战第22天】在PolarDB中,如果慢SQL导致了CPU升高,进而又产生了更多的慢SQL
13 1
|
1月前
|
关系型数据库 PostgreSQL
postgresql日程排程函数的编写实例
postgresql日程排程函数的编写实例
|
2月前
|
SQL 关系型数据库 分布式数据库
在PolarDB for PostgreSQL中,你可以使用LIKE运算符来实现类似的查询功能,而不是使用IF函数
在PolarDB for PostgreSQL中,你可以使用LIKE运算符来实现类似的查询功能,而不是使用IF函数
43 7
|
2月前
|
SQL 算法 JavaScript
【数据库SQL server】关系型数据库的基本知识
【数据库SQL server】关系型数据库的基本知识
150 0
|
4月前
|
SQL 关系型数据库 C语言
PostgreSQL【应用 03】Docker部署的PostgreSQL扩展SQL之C语言函数(编写、编译、载入)计算向量余弦距离实例分享
PostgreSQL【应用 03】Docker部署的PostgreSQL扩展SQL之C语言函数(编写、编译、载入)计算向量余弦距离实例分享
45 0
|
4月前
|
SQL 关系型数据库 数据库
PostgreSQL【应用 02】扩展SQL之C语言函数(编写、编译、载入)实例分享
PostgreSQL【应用 02】扩展SQL之C语言函数(编写、编译、载入)实例分享
49 0
|
4月前
|
SQL 关系型数据库 MySQL
MySQL【实践 02】MySQL迁移到PostgreSQL数据库的语法调整说明及脚本分享(通过bat命令修改mapper文件内的SQL语法)
MySQL【实践 02】MySQL迁移到PostgreSQL数据库的语法调整说明及脚本分享(通过bat命令修改mapper文件内的SQL语法)
112 0
|
4月前
|
SQL 关系型数据库 PostgreSQL
PostgreSQL【SQL 01】根据条件更新字段值或追加信息STRPOS(string, substring)函数使用及LIKE函数对比
PostgreSQL【SQL 01】根据条件更新字段值或追加信息STRPOS(string, substring)函数使用及LIKE函数对比
56 0
|
4月前
|
SQL 关系型数据库 PostgreSQL
PostgreSQL【部署 01】离线安装PostgreSQL+PostGIS踩坑及问题解决经验分享(含安装文件PostgreSQL+PostGIS及多个依赖+测试SQL)
PostgreSQL【部署 01】离线安装PostgreSQL+PostGIS踩坑及问题解决经验分享(含安装文件PostgreSQL+PostGIS及多个依赖+测试SQL)
116 0