2010-03-02 4 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 
관련 문제