2

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

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

“之间”是纯粹的装饰性关键字吗?避免出现“和”,还是提供更多的东西?

4

2 回答 2

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有助于改善这一点。

于 2013-02-27T17:38:16.187 回答
1

数据库优化查询,无论哪种方式都应该具有相同的性能。

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

于 2013-02-27T17:35:49.573 回答