在SQL语句中需要选择两个值之间的数据范围时,通常我们会想到BETWEEN ... AND操作符,例如,

SELECT * FROM TABLE WHERE A BETWEEN B AND C;

请问A和B、C这两个边界值的关系是什么?A>B?A>=B?A

不同的数据库,对BETWEEN ... AND操作符的处理,可能存在差异的。有些数据库返回A>B & A=B & A<=C,有的数据库返回A>=B & A

我们看下Oracle中,是如何操作BETWEEN ... AND的。

官方手册上,BETWEEN ... AND定义如下,

expr1 [ NOT ] BETWEEN expr2 AND expr3

其中expr可以是数字、字符、或者日期表达式。如果expr不是相同的类型,则Oracle可能会使用隐式转换。如果是在SQL中,expr1可能会使用多次,如果是在PL/SQL中,expr1只会使用1次。如果expr3

这两种表达,是等价的,

expr1 NOT BETWEEN expr2 AND expr3

NOT (expr1 BETWEEN expr2 AND expr3)

这两种表达,是等价的,expr2 less than or equal to expr1 AND expr1 less than or equal to expr3,其实他就回答了,开头的问题,在Oracle中,A BETWEEN B AND C,表示的是A>=B & A<=C,

expr1 BETWEEN expr2 AND expr3

expr2 <= expr1 AND expr1 <= expr3

我们再从实验,论证一下,

SQL> create table a(id number);

Table created.

SQL> insert into a values(1);

1 row created.

SQL> insert into a values(2);

1 row created.

SQL> insert into a values(3);

1 row created.

SQL> select * from a;

ID

----------

1

2

3

SQL> select * from a where id between 1 and 3;

ID

----------

1

2

3

SQL> select * from a where x between 'a' and 'c';

ID X

---------- -

1 a

2 b

3 c

可以看到,无论是数字,还是使用字符,A BETWEEN B AND C,都等价的是A>=B & A<=C。

若朋友们使用其他的数据库,可以留言告诉我们在不同的数据库中,BETWEEN ... AND都出现怎样不同的现象?

参考:

https://www.w3school.com.cn/sql/sql_between.asp

oracle中between性能,Oracle中BETWEEN ... AND的作用相关推荐

  1. oracle 查看数据库性能,oracle 11G使用statspack查看数据库的性能

    1.安装Statspack工具(statspack工具的脚本在$ORACLE_HOME/rdbms/admin目录下,全是以sp开头的文件) [oracle@oracle ~]$ sqlplus / ...

  2. oracle提升count性能,Oracle性能优化之COUNT

    示例代码 SELECT COUNT(1) INTO l_count FROM gl_je_headers h WHERE h.je_source != '13' AND h.attribute1 != ...

  3. oracle排序函数性能,oracle排序函数

    rank,dense_rank,row_number,以及分组排名partition rank:排名会出现并列第n名,它之后的会跳过空出的名次,例如:1,2,2,4 dense_rank:排名会出现并 ...

  4. 计算机配置表中的内存是指什么,电脑里的性能选项中,处理器计划和内存使用所写的是什么意思...

    电脑里的性能选项中,处理器计划和内存使用所写的是什么意思以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 电脑里的性能选项 ...

  5. loadrunner录制事件为0_Oracle数据库性能监控|LoadRunner 中配置监控Oracle

    Oracle 是目前世界上大型应用系统广泛使用的数据库,Oracle 数据库产品为财富排行榜上的前1000 家公司所采用,许多大型网站也选用了Oracle 系统.Oracle 内部结构比较复杂,如图8 ...

  6. 性能测试过程中oracle数据库报ORA-27301 ORA-27302错

    最近在性能测试过程中发现,发现虚拟用户数上不去,加载到一定的数量应用端就报错,提示连接数据库出错.在测试的过程中查看web容器的线程池 数据源的连接池 都还有空闲,同时查看oracle的v$sessi ...

  7. 本周4天4场直播,解决你对Oracle的种种疑惑,还有第2期大咖讲坛讨论敏捷开发中的性能质量管控...

    1. Oracle 10046 Trace的取得和解析方法 -04.13 本课程以专业 Oracle 数据库技术支持工程师的角度讲解 10046 Trace 的取得和解析方法. 分享大纲: 10046 ...

  8. oracle 调整shared pool,Oracle性能调整中的Shared pool tunning要点

    本文主要简述的是Oracle性能调整中Shared pool tunning要点,Shared pool tunning要点,在Oracle性能调整实际的相关操作中起到不可忽视的作用,以下的文章就是对 ...

  9. oracle segment io,Oracle I/O性能测试之DBMS_RESOURCE_MANAGER.CALIBRATE_IO篇(持续更新中)...

    简介 Oracle 11g数据库中提供了DBMS_RESOURCE_MANAGER.CALIBRATE_IO PL/SQL过程用于对当前数据库实例的I/O性能进行测试. DBMS_RESOURCE_M ...

最新文章

  1. 凤舞天博客中的一些好的见解
  2. 盘点Windows10系统的使用小技巧三 —— 虚拟桌面
  3. linux基础篇-系统中进程相关概念
  4. pb 窗口数据修改sql_Snowflake将成为在云中变得更好的数据仓库
  5. 服务器内存升级与oracle 参数调整 实施
  6. MVC控制器取参数值
  7. 【路径规划】基于matlab GUI改进的DWA算法机器人动态避障路径规划【含Matlab源码 1271期】
  8. java代码上传到私服,maven上传源码到私服(示例代码)
  9. Babylongjs-动画
  10. 某程序员求助:简历造假,如今面试通过,要坦白吗?
  11. 基于matlab的汽车牌照识别程序
  12. 如何通过知识付费盈利,实现内容变现?
  13. iframe 动态 加载 src
  14. 编写一个简单Java程序,计算银行年存款的本息
  15. 服务器的类型包括哪些?
  16. 校招生向京东发起的“攻势”,做到他这样,你,也可以
  17. 在Vue-cli脚手架中引入图片最常用的两种方法
  18. jsp taglib指令_JSP Taglib指令
  19. 如何关掉计算机进行中的程序,任务管理器进程哪些是可以关闭的【图文教程】...
  20. java去掉字符串前面的空格

热门文章

  1. t-SNE:最好的降维方法之一
  2. 韩老师多目标优化:多目标粒子群算法
  3. 准备笔记 -- 虚函数
  4. macw小教程:教你在Mac上登录iOS端游戏,原神ios电脑版教程
  5. kettle 连接数据库报错 (错误连接数据库 [mysql] : org.pentaho.di.core.exception.KettleDatabaseException: Error occ)
  6. WEB安全之PHP安全开发 博客系统(二):前台js登陆验证、套用模板主体修改登陆和后台样式
  7. 数学之路(3)-机器学习(3)-机器学习算法-贝叶斯定理(3)
  8. 旋转矩阵欧拉角万向锁详解
  9. 笔记本触摸板失灵修复小技巧_手机屏幕突然失灵怎么办?这几个维修小技巧,一定要知道!...
  10. 面向对象测试题(含答案和解析)