2013-02-27 159 views
2

我想了解使用'where num between 2 and 4'和'where num> = 2且num < = 4'的差異,因爲它適用於Oracle,Sybase-ASE和MSSQL。SQL爲什麼要使用'between'而不是'> =和<='

從純粹的視覺角度來看,「之間」對我來說更好看。 但是我更擔心性能和其他技術問題。 (例如執行計劃有可能會有所不同)

是'介於'一個純粹的化妝品關鍵字?避免使用'和',還是提供更多的東西?

+9

b和c之間的'a是語法糖('b <= a和a <= c)'。這只是爲了方便。 – Andomar 2013-02-27 17:35:52

+0

@SilentByte,介於2和4之間。 – Kaf 2013-02-27 17:36:07

+0

簡單的答案:因爲它是可用的並且您必須輸入較少。 – Art 2013-02-27 17:36:51

回答

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

數據庫優化了查詢,並且應該具有相同的性能。

也就是說,優化器將創建一個分析樹,兩者應該有相同的執行計劃。

相關問題