当前位置: 首页 > news >正文

PostgreSQL对称between比较运算

本文介绍PostgreSQL对称between比较功能:between symmetric,在动态拼接SQL时利用它可以简化判断。PostgreSQL 9.4 及以上版本支持BETWEEN SYMMETRIC操作符,MySQL、Oracle、MsSQL没有对应功能。

在这里插入图片描述

between 比较

PostgreSQL的between结构允许你对两个值(数字、时间戳等)进行比较。

> select * from generate_series(1,10) as numbers(a)where numbers.a between 3 and 6;a
---3456

如果先使用两个值中较大的一个来提供空范围,则会得到一个空集合。

> select * from generate_series(1,10) as numbers(a)where numbers.a between 6 and 3;a
---

BETWEEN SYMMETRIC比较

BETWEEN SYMMETRIC用于在比较范围时包含边界值,并且与常规的BETWEEN操作符不同的是,它对边界值的处理是对称的。例如,在常规的BETWEEN操作中,a BETWEEN b AND c等价于a >= b AND a <= c,而a BETWEEN SYMMETRIC b AND c等价于(a >= b AND a <= c) OR (a <= b AND a >= c)。这在处理范围比较时,当边界值的顺序不确定或者需要对称比较时非常有用。

在编码方式实现动态SQL情况下,经常会遇到这种情况。简单解决办法是在代码中判断两个参数大小,然后再拼接动态SQL。当然我们也可以使用PostgreSQL提供的对称Between功能,无需判断参数大小:

> select * from generate_series(1,10) as numbers(a)where numbers.a between symmetric 6 and 3;a
---3456

BETWEEN SYMMETRIC与BETWEEN相同,只是不要求AND左边的参数小于或等于右边的参数。如果不是,则自动交换这两个参数,因此始终隐含一个非空范围。

http://www.lryc.cn/news/514675.html

相关文章:

  • Spring AOP面向切面编程
  • Visual Studio 中增加的AI功能
  • 15. 接雨水
  • 从索尼爱立信手机打印短信的简单方法
  • Java-list均分分割到多个子列表
  • kettle合并表数据
  • 蓝耘平台使用InstantMesh‌生成高质量的三维网格模型!3D内容创作!小白入门必看!!!
  • 关于IDE的相关知识之二【插件推荐】
  • oceanbase集群访问异常问题处理
  • Linux(centos)安装 MySQL 8 数据库(图文详细教程)
  • C++之map和set的模拟实现
  • 判断一个单链表是否是回文结构 要求O(N)时间复杂度 O(1)空间复杂度
  • Kafka 快速实战及基本原理详解解析-01
  • wujie无界微前端框架初使用
  • C++ 设计模式:职责链模式(Chain of Responsibility)
  • Yocto项目 - 详解PACKAGECONFIG机制
  • Linux下部署ElasticSearch集群
  • 超高分辨率 图像 分割处理
  • 【含文档+PPT+源码】基于springboot的农贸菜市场租位管理系统的设计与实现
  • 信息科技伦理与道德1:绪论
  • Linux实验报告15-添加系统调用
  • logback之配置文件使用详解
  • 壁纸样机神器,这个工具适合专业设计师用吗?
  • MySQL秘籍之索引与查询优化实战指南
  • 【AI日记】25.01.03 kaggle 比赛 3-2 未来的命运
  • Linux(Centos 7.6)命令详解:ls
  • 【Unity3D】UGUI Canvas画布渲染流程
  • minikube安装k8s
  • Docker图形化界面工具Portainer最佳实践
  • 借助 FinClip 跨端技术探索鸿蒙原生应用开发之旅