次のうちどれがより効率的でしょうか?
IN
SQL Serverが結果セットを大きなIF
ステートメントに変えると信じているので、私は常に使用について少し慎重でした。結果セットが大きい場合、パフォーマンスが低下する可能性があります。結果セットが小さい場合は、どちらが望ましいかわかりません。大きな結果セットの場合、EXISTS
より効率的ではないでしょうか?
WHERE EXISTS (SELECT * FROM Base WHERE bx.BoxID = Base.BoxID AND [Rank] = 2)
対。
WHERE bx.BoxID IN (SELECT BoxID FROM Base WHERE [Rank = 2])