Oracle SQL中的!=與<>
4 回答

慕斯709654
TA貢獻1840條經驗 獲得超5個贊
一個問題:
這兩個都是不等于符號,沒有什么區(qū)別,如果這個字段有索引,都可以使用的。
第二個問題:
in 和 not in 都可以使用索引的,但是如果name字段有很多值,那么not in的執(zhí)行時間應該稍微長一點,因為它返回的值比較多。
補充:如果name的值比較少的話,in和not in條件嚴密性差不多,如果name值比較多的時候,in的嚴密性更高,索引都是按照順序排好的,相等的情況只有一種,不等的情況有很多種。
如果你('a', 'b')這些值是放在另外一個表里面,還有not exsits可以替換,如果是常量的話,貌似也只能這么寫了。

qq_遁去的一_1
TA貢獻1725條經驗 獲得超8個贊
我怎么記得oracle只能用<>呢。如果能用,應該是沒有區(qū)別。
不管怎樣,“不等于”判斷是不能用索引的。
道理很簡單:索引即使穿上了“樹”這個馬甲,其本質上還是對排序數據的二分查找。
“不等于”判斷無法確定數據順序,也就無法使用二分查找算法。所以就無法使用索引了。
其他不能使用索引的情況也是這個道理。
- 4 回答
- 0 關注
- 754 瀏覽
添加回答
舉報
0/150
提交
取消