Ich habe einige Zweifel, wann IN Operator und Exists Operator verwendet werden soll. Ich weiß, was sie beide sind.SQL Server: Verwendung von In vs Exists
Sag mal, ich habe diese Anfrage:
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)
Ich bin Einfügen von Datensätzen in einer Tabelle, wo die Aufzeichnungen auch in promotionevent_new (eventcode)
existieren müssen in dieser Tabelle existieren Ich bin Einfügen. Diese Abfrage funktioniert einwandfrei. Ich habe mich gefragt, wäre es besser, eine Alternative zu verwenden, wie zum Beispiel:
where EventCode in (select EVENTCODE from PromotionEvent)
Beide Abfragen das gleiche Ergebnis zurück - die aber für meinen Fall besser wäre?
Also sollte ich mit exists-Klausel bleiben? –
Ja, wenn Ihre Unterabfrage zu großen Daten führt. –
Mit Unterabfrage meinen Sie die Daten in promotionevent_new? –