如何解决运算符与“> =”和“ <=”运算符之间的SQL差异
|| 我们正在使用SQL查询基于dateFrom和dateTo字段进行搜索。为此,我使用\“大于等于(> =)\”和\“小于等于(<=)\”运算符在日期字段上进行搜索。在某个地方,我还发现我们也可以使用SQL \“ Between \\”操作符执行相同的操作。只是想确认当我们使用\“ Between \”运算符和使用\“(> =&<=)\”运算符时有什么区别。解决方法
现代数据库附带了非常智能的查询执行优化器。它们的主要功能之一是查询转换。逻辑上等效的表达式通常可以相互转换。例如正如Anthony所建议的那样,如果不将0仅仅作为语法糖来实现,则Oracle(和MySQL)可以将0运算符重写为两个与1相连的比较,反之亦然。
因此,即使性能(性能)有所不同,您也可以放心,Oracle很可能会选择更好的选项。
这意味着您可以自由选择偏好设置,例如因为可读性。
注意:在逻辑上是等效的并不总是很明显。查询转换规则在转换
EXISTS
,IN
,NOT EXISTS
,NOT IN
...时变得更加复杂。但是在这种情况下,它们确实是。有关更多详细信息,请阅读规范(谓词之间的第8.3章):
http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt
, 没有区别。
(x BETWEEN y AND z)
和写作一样
((x >= y) AND (x <= z))
, 这样就没有区别(使用ORACLE时),但是使用BETWEEN运算符是比较范围值的更优雅的方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。