我想了解使用'where num in 2 and 4'和'where num> = 2和num< = 4'的任何区别,因为它适用于Oracle,Sybase-ASE和MSSQL。 / p>
从纯粹的视觉角度来看,“两者之间”看起来对我来说更好。 但是我更担心性能和任何其他技术问题。 (例如,执行计划可能不同)
'介于'之间是一个纯粹的化妆品关键字?避免使用'和',还是提供更多东西?
答案 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)
数据库优化查询,并且应该具有相同的性能。
也就是说,优化器将创建一个解析树,两者应该具有相同的执行计划。