我们使用SQL查询来搜索dateFrom和dateTo字段.因为我使用“大于等于(> =)”和“小于等于(< =)”运算符来搜索日期字段.某处我也发现我们也可以使用SQL“Between”运算符来做同样的事情.只是想确认当我们使用“Between”运算符和我们使用“(> =&< =)”运算符时有什么区别.
最佳答案
@H_404_6@现代数据库附带非常智能的查询执行优化器.它们的主要特征之一是查询转换.逻辑上等效的表达式通常可以相互转换.例如正如Anthony建议的那样,BETWEEN运算符可以被Oracle(和MySQL)重写为两个AND连接的比较,反之亦然,如果BETWEEN不仅仅被实现为语法糖.
因此,即使存在差异(性能),您也可以放心,Oracle很可能会选择更好的选择.
这意味着您可以自由选择您的偏好,例如因为可读性.
注意:它并不总是显而易见的,逻辑上等同于什么.当转换EXISTS,IN,NOT EXISTS,NOT IN时,查询转换规则变得更加复杂……但在这种情况下,它们是.有关更多详细信息,请阅读规范(谓词之间的第8.3章):