Nehmen Sie sie in Ihre Anfrage auf, etwa so:
SELECT * FROM MyTable
WHERE col1=@val1
And (Not Condition1 Or col2 = @val2)
And (Not Condition2 Or col3 = @val3)
Also, wenn Nicht Not Condition1 (bedeutet: Condition1 ist wahr) Then col2 (must) = @val2.
(Ich habe die 2. bedingte Logik in AND col3 = @val3 geändert, weil Sie AND wiederholt hatten col2 = @val2 )
bearbeiten als Antwort auf den Kommentar: Geben Sie mir ein Beispiel für die Kriterien für Bedingung 1. Ausdrücklich wenn Syntax wird innerhalb von Abfragen in t-sql nicht verwendet. Nehmen wir an, die "vorherigen Bestellungen" müssen weniger als 20 sein, damit das erste Kriterium von Bedeutung ist, und das zweite Kriterium ist von Bedeutung, wenn es keinen Vornamen gibt. Das wäre dann so:
SELECT * FROM MyTable
WHERE col1=@val1
And (MyTable.OrderCount > 19 Or col2 = @val2)
And ((Not MyTable.FirstName Is Null) Or col3 = @val3)
Denken Sie nicht im Sinne von "dieses Kriterium ist wichtig, wenn diese Situation wahr ist". Alle Faktoren, die von Bedeutung sind, fließen in die Where-Klausel ein. Sie müssen das Oder/And/Nicht und die Reihenfolge der Operationen verstehen. Dies erfordert Übung, um gut zu werden. Wenn Sie ein paar Minuten darüber nachdenken müssen, machen Sie sich keine Sorgen, das geht uns allen manchmal so.