我想了解使用“where num在2和4之间”和“where num ASE 2和num <= 4”的区别,因为它适用于Oracle、Sybase-ASE和MSSQL。
从纯视觉的角度来看,“介于”在我看来更好。然而,我更担心的是性能和其他任何技术问题。(例如,执行计划是否可能不同)
“between”是一个纯粹的修饰关键词吗?为了避免“and”,或者它提供了更多的东西?
发布于 2013-02-28 01:38:16
有时使用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这样的功能可以帮助改善这一点。
发布于 2013-02-28 01:35:50
数据库优化了查询,无论采用哪种方式,都应该具有相同的性能。
也就是说,优化器将创建一个解析树,并且两者应该具有相同的执行计划。
https://stackoverflow.com/questions/15118521
复制相似问题