我想了解使用“where num Between 2 and 4”和“where num >= 2 and num <= 4”的差异,因为它适用于 Oracle、Sybase-ASE 和 MSSQL。
从纯粹的视觉角度来看,“之间”对我来说看起来更好。 然而,我更担心性能和任何其他技术问题。 (例如执行计划是否有可能不同)
“Between”是一个纯粹的装饰性关键字吗?以避免出现“和”,或者它是否提供了更多内容?
最佳答案
有时使用 BETWEEN
可以避免多次评估一个操作:
SELECT AVG(RAND(20091225) BETWEEN 0.2 AND 0.4)
FROM t_source;
---
0.1998
SELECT AVG(RAND(20091225) >= 0.2 AND RAND(20091225) <= 0.4)
FROM t_source;
---
0.3199
在第一个查询中 RAND()
仅调用一次,但在第二个查询中 RAND
被调用两次,这里 BETWEEN
可以帮助您对 RAND
的第二个函数调用。
SQL 查询的可读性也值得一提,查询可能会变得海量,像 BETWEEN
这样的函数有助于改善这一点。
关于SQL为什么使用 'between'而不是 '>= and <=',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15118521/