2010-03-02 48 views

回答

6

對不起,沒有:

WHERE 
    (@flag = 1 AND record.field = a) 
    OR 
    (@flag = 2 AND record.field IN (b, c)) 
4

嘗試:

WHERE (@flag = 1 AND record.field = a) 
    OR (@flag = 2 AND record.field IN (b, c)) 

它可能是更好地嘗試在價值加入並使用索引:

DECLARE @Table (ValueOf int) 
INSERT INTO @Table ((ValueOf) 
    SELECT a WHERE @flag = 1 
    UNION SELECT b WHERE @flag = 2 
    UNION SELECT c WHERE @flag = 2 

SELECT 
    .... 
    FROM ...   x 
    INNER JOIN @Table t ON x...=t.ValueOf