IN演算子とExists演算子を使用するタイミングに疑問があります。私は彼らがどちらであるかを知っています。SQL Server:In対Existsの使用
言って、私はこのクエリを持っている:
Insert into AuditCardTypeBenefit_New(AuditID, AuditType, CardTypeBenefitID, EventCode,
CardTypeGroupID, AgeFrom, AgeTo, Gender,
CreateBy, CreateDate, Status,
CancelReason, LastChangeBy, LastChangeDate)
select
AuditID, AuditType, CardTypeBenefitID, EventCode,
CardTypeGroupID, AgeFrom, AgeTo, Gender,
CreateBy, CreateDate, Status,
CancelReason, LastChangeBy, LastChangeDate
from
AuditCardTypeBenefit
where
exists (select * from PromotionEvent_New
where PromotionEvent_New.EventCode = AuditCardTypeBenefit.EventCode)
私はレコードはまた、私は挿入しています。このテーブルに存在するpromotionevent_new (eventcode)
に存在している必要があり、テーブルにレコードを挿入しています。このクエリは正常に動作します。しかし、これは私の場合のために良いだろう - 両方のクエリが同じ結果を返す
where EventCode in (select EVENTCODE from PromotionEvent)
:私はそれのような代替手段を使用する方が良いでしょう不思議でしたか?
を編集しますので、exist句を付けるべきですか? –
はい、サブクエリが大きなデータを生成する場合。 –
サブクエリでは、あなたはpromotionevent_newのデータを意味しますか? –