让他们在您的查询,像这样:
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