2013-02-12 27 views
6

हाय सब (! ढेर पर मेरी पहली पोस्ट),एसक्यूएल WHERE केस का उपयोग कैसे करें या एक ही समय में बराबर नहीं है?

यह काम करता है:

where 
    Tran_date between @FromDate and @ToDate 

and Range = @Range 

and Store_ID = 
    case when @Range = 'RangeName' then 
     1234 
    else 
     Store_ID 
    end 

लेकिन मैं कैसे प्राप्त कर सकते हैं इस ?:

where 
    Tran_date between @FromDate and @ToDate 

and Range = @Range 

and Store_ID 
    case when @Range = 'RangeName' then 
     not in (1234, 5678) 
    else 
     Store_ID 
    end 

उत्तर

1

मुझे लगता है कि आप चाहते हैं:

AND NOT (@Range = 'RangeName' AND Store_ID IN (1234,5678)) 
0

कैसे इस बारे में:

where Tran_date between @FromDate and @ToDate 
    and Range = @Range 

    and (@Range = 'RangeName' and Store_ID not in (1234, 5678) 
     or @Range <> 'RangeName' and Store_ID = Store_ID) 
4
where 
    Tran_date between @FromDate and @ToDate 

and Range = @Range 

and Store_ID 
    case when @Range = 'RangeName' AND Store_Id in (1234, 5678) 
     9999 -- Assumes 9999 is a non possible value. 
      -- If it is possible then pick one that isn't. 
    else 
     Store_ID 
    end 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^