我想了解使用'where num between 2 and 4'和'where num >= 2 and num <= 4'的任何区别,因为它适用于Oracle、Sybase-ASE和MSSQL。
从纯粹的视觉角度来看,“之间”对我来说看起来更好。但是我更担心性能和任何其他技术问题。(例如,执行计划是否可能不同)
“之间”是纯粹的装饰性关键字吗?避免出现“和”,还是提供更多的东西?
我想了解使用'where num between 2 and 4'和'where num >= 2 and num <= 4'的任何区别,因为它适用于Oracle、Sybase-ASE和MSSQL。
从纯粹的视觉角度来看,“之间”对我来说看起来更好。但是我更担心性能和任何其他技术问题。(例如,执行计划是否可能不同)
“之间”是纯粹的装饰性关键字吗?避免出现“和”,还是提供更多的东西?
有时使用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
有助于改善这一点。
数据库优化查询,无论哪种方式都应该具有相同的性能。
也就是优化器会创建一个解析树,两者应该有相同的执行计划。