介绍 PostgreSql 两个有用的比较操作
介绍 PostgreSql 两个有用的比较操作
本文介绍PostgreSql中两个非常方便、有用的比较操作,OVERLAPS 和 BETWEEN SYMMETRIC。
1. OVERLAPS(重叠)
OVERLAPS操作,用于检测两个日期范围是否重叠。举例:
SELECT (DATE '2016-01-10', DATE '2016-02-01') OVERLAPS (DATE '2016-01-20', DATE '2016-02-10');
结果返回true。
时间范围边界有两种方式:
- 日期(times or timestamps),与上面示例一样
- date 和 interva,见下面示例。
SELECT (DATE '2016-01-10', INTERVAL '1 month') OVERLAPS (DATE '2016-01-20', INTERVAL '7 days');
结果返回true。
注意:如果第一个时间范围的截至时间等于第二个时间范围的开始时间,结果返回false。
2. BETWEEN SYMMETRIC
我们都用过 value BETWEEN X AND Y
,其实就是 value >= X AND value <= Y
。举例:
SELECT * FROM users WHERE id BETWEEN 2 AND 4
则返回id为2,3,4的用户信息。
value BETWEEN X AND Y
是假设x 比 y 小,否则查询结果为空。举例:
SELECT * FROM users WHERE id BETWEEN 4 AND 2
实际应用中x , y可能是用户传入的参数,有可能没有按照约定传入,导致查询结果为空。BETWEEN SYMMETRIC 可以解决该问题。
下面通过示例说明:
> select * from generate_series(1,10) as numbers(a)where numbers.a between 3 and 6;a
---3456
如果between参数颠倒,返回结果为空:
> select * from generate_series(1,10) as numbers(a)where numbers.a between 6 and 3;a
请出between symmetric:
> select * from generate_series(1,10) as numbers(a)where numbers.a between symmetric 6 and 3;a
---3456
很好,参数顺序不重要了。
3. 总结
本文带你通过示例学习PostgreSql 两个有用的比较操作。非常简单易懂,持续学习会让你变得不简单。
介绍 PostgreSql 两个有用的比较操作相关推荐
- shell中join链接多个域_shell 如何实现两个表的join操作
shell 如何实现两个表的join操作 今天研究的一个问题是:在Shell 脚本中如何实现两个表的 join 操作,这里说的两个表示的其实是 两个文件,但是文件是列表的形式,有固定的分割符号,即就相 ...
- 3Com Network Supervisor与IBM Tivoli NetView两款网管软件操作视频
3Com Network Supervisor与IBM Tivoli NetView两款网管软件操作视频 网管软件必须能够实实在在的给我们带来好处,对于企业网络管理来说,其作用体现在以下几个方面: ...
- css 一些好玩的属性,css一些不常见但很有用的属性操作大全
1.自定义文本选择 ::selection { background: red; color: black; } 2.去掉video的controls中的下载按钮 video::-internal-m ...
- 介绍PostgreSQL CTE(common table expressions)
介绍PostgreSQL CTE(common table expressions) 本文我们学习如何使用PostgreSQL CTE(common table expressions)简化复杂查询. ...
- python ioc di_Spring介绍,IOC(控制反转),DI(依赖注入)介绍及两种注入方法
Spring介绍,IOC(控制反转),DI(依赖注入)介绍及两种注入方法 第一中方法:在xml文件中注入: (1)开源的轻量级的应用开发框架 特点:a.简化开发:b.解耦:c.集成: 原理对象与对象之 ...
- 两个ListBox的相互操作
两个ListBox的相互操作有四个按:全选,单选,反单选,反全选. 一.一种情况是这四个按钮用服务器控件: /**//// <summary> /// 选中全部 / ...
- 判断子序列不同的子序列两个字符串的删除操作编辑距离
引言 下面的四种题相互间都有联系,都是类似编辑距离类的题目,这里从简单开始,逐渐深入: 判断子序列 给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 字符串的一个子序列是原始字符串删除一些( ...
- Leetcode 583.两个字符串的删除操作
两个字符串的删除操作 给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符. 示例 1: 输入: "se ...
- 583. 两个字符串的删除操作
583. 两个字符串的删除操作 给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符. 示例: 输入: " ...
- 一些比较有用的SQL操作,2011最新整理
一些比较有用的SQL操作,2011最新整理,SQL批量删除与批量插入,批量删除:wei yuan chuang DELETE FROM MyTable WHERE ID IN (1,2); 批量插入 ...
最新文章
- 【Kafka】Kafka为什么要加入分区的概念
- 吴恩达 coursera AI 第四课总结+作业答案
- DCMTK:OFerror_code的测试程序
- Linux服务器rsync自动备份
- IDEA显示完整目录,取消合并的文件,取消“ . “ 的这种目录
- 显示滚动条后,table 表头与内容不对齐,JS脚本控制
- 计算机防火墙服务不能启动不了,Windows防火墙不能启动 服务也不能启动,怎么回事?...
- 虚拟拨号服务器名称,怎么设置虚拟拨号服务器
- 树立品牌价值标杆,维谛技术(Vertiv)荣膺“中国电气工业100强”殊荣
- 某大神网站发现2048一枚
- 微信h5页面制作总结
- 手机网页应用的交互设计
- emq Node emq@ not responding to pings.
- popen和system函数的区别 以及 popen打开的FILE指针能否用close替代fclose关闭
- Python爬虫 BeautifulSoup(bs4)-- bs4介绍、安装bs4、bs4基础语法
- ts(typescript): 报错
- 5G LAN是什么?5G LAN商用实现工业物联网5G无线接入
- “以虫为名”?新华三这波发布有点儿别出心裁……
- bison使用error死循环的记录
- .dat数据文件怎么打开_SPSS统计分析,之一 SPSS数据文件读取
热门文章
- html中鼠标点击效果的制作,用CSS实现鼠标单击特效-网页设计,HTML/CSS
- Duality-Gated Mutual Condition Network for RGBT Tracking
- 一个关于IT界牛人的故事,估计是杜撰的。
- vm15安装mac10.14提取ipa包
- EXCEL VBA窗口快捷键冲突查找原因
- 苹果html 闪退,iPhone6 App闪退的解决办法 掌握这4点苹果App不再闪退
- JNI 手动释放内存(避免内存泄露)
- Python正则表达式及match函数的用法
- 【USACO】Team Tic Tac Toe(C题)
- APIO 2017 考拉的游戏 题解