SQL为什么使用'between'而不是'> =和< ='

时间:2013-02-27 17:34:10

标签: sql sql-server oracle sybase-ase

我想了解使用'where num in 2 and 4'和'where num> = 2和num< = 4'的任何区别,因为它适用于Oracle,Sybase-ASE和MSSQL。 / p>

从纯粹的视觉角度来看,“两者之间”看起来对我来说更好。 但是我更担心性能和任何其他技术问题。 (例如,执行计划可能不同)

'介于'之间是一个纯粹的化妆品关键字?避免使用'和',还是提供更多东西?

2 个答案:

答案 0 :(得分:3)

有时使用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这样的函数可以帮助改善这一点。

答案 1 :(得分:1)

数据库优化查询,并且应该具有相同的性能。

也就是说,优化器将创建一个解析树,两者应该具有相同的执行计划。