讓他們在您的查詢,像這樣:
SELECT * FROM MyTable
WHERE [email protected]
And (Not Condition1 Or col2 = @val2)
And (Not Condition2 Or col3 = @val3)
所以,如果不沒有條件1(意爲:條件1爲true),然後COL2(必須)= @ VAL2 。
(我改變了第二個條件邏輯和COL3 = @ VAL3,因爲你曾反覆COL2 = @ VAL2)
編輯迴應評論: 給我的標準的一個例子爲condition1。明確如果語法未在t-sql中的查詢中使用。比方說,對於第一個標準來說,「以前的訂單」必須小於20,並且。 。 。如果沒有名字,第二個標準就很重要。它會是:
SELECT * FROM MyTable
WHERE [email protected]
And (MyTable.OrderCount > 19 Or col2 = @val2)
And ((Not MyTable.FirstName Is Null) Or col3 = @val3)
不要這樣想,「這個標準很重要,如果這種情況是真的」。所有重要的因素進入where子句。你必須瞭解Or/And/Not和操作順序。這需要練習才能獲得好處。如果你需要仔細考慮幾分鐘,不要擔心,有時候我們其他人也一樣。
其中任何答案有幫助嗎? :) – 2010-05-19 20:14:28