哪兩個人會表現得更好(我最近被指責不小心我的代碼,因爲我曾經在甲骨文以後):已存在/不存在:「選擇1」 VS「選場」
Select *
from Tab1
Where (not) exists(Select 1 From Tab2 Where Tab1.id = Tab2.id)
Select *
from Tab1
Where (not) exists(Select Field1 From Tab2 Where Tab1.id = Tab2.id)
或者他們都一樣嗎?
請從SQL Server視角和Oracle視角回答這兩個問題。
我已經使用了Google(大部分來自sql-server端),並發現仍然存在很多爭論,儘管我目前的觀點/假設是RDMBS中的優化器已經足夠成熟以理解所有必需的來自子查詢的是一個布爾值。
沒什麼差別,它們都是一樣的。檢查兩個查詢的執行計劃以驗證。 – 2014-10-20 09:08:51
看看這個答案..http://stackoverflow.com/a/6140367/2975396 – TheGameiswar 2016-09-11 13:00:44